Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import coil3.request.allowHardware
import coil3.size.Dimension
import coil3.size.Precision
import coil3.size.Size
import coil3.toBitmap
import dagger.hilt.android.AndroidEntryPoint
import io.homeassistant.companion.android.R
import io.homeassistant.companion.android.common.data.servers.ServerManager
Expand All @@ -30,7 +31,6 @@ import io.homeassistant.companion.android.webview.WebViewActivity
import io.homeassistant.companion.android.widgets.ACTION_APPWIDGET_CREATED
import io.homeassistant.companion.android.widgets.BaseWidgetProvider.Companion.UPDATE_WIDGETS
import io.homeassistant.companion.android.widgets.EXTRA_WIDGET_ENTITY
import io.homeassistant.companion.android.widgets.common.RemoteViewsTarget
import javax.inject.Inject
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.CoroutineScope
Expand Down Expand Up @@ -166,20 +166,20 @@ class CameraWidget : AppWidgetProvider() {
)
Timber.d("Fetching camera image")
try {
val request = ImageRequest.Builder(context)
.data(url)
.target(RemoteViewsTarget(this, R.id.widgetCameraImage))
// RemoteViews requires software bitmaps for serialization
.allowHardware(false)
.diskCachePolicy(CachePolicy.DISABLED)
.memoryCachePolicy(CachePolicy.DISABLED)
.networkCachePolicy(CachePolicy.READ_ONLY)
.size(Size(getScreenWidth(), Dimension.Undefined))
.precision(Precision.INEXACT)
.build()
// Wait for the image to be loaded before returning the RemoteViews
// to avoid concurrent modifications between Coil and updateAppWidget.
context.imageLoader.enqueue(request).job.join()
context.imageLoader.execute(
ImageRequest.Builder(context)
.data(url)
// RemoteViews requires software bitmaps for serialization
.allowHardware(false)
.diskCachePolicy(CachePolicy.DISABLED)
.memoryCachePolicy(CachePolicy.DISABLED)
.networkCachePolicy(CachePolicy.READ_ONLY)
.size(Size(getScreenWidth(), Dimension.Undefined))
.precision(Precision.INEXACT)
.build(),
).image?.toBitmap()?.let {
setImageViewBitmap(R.id.widgetCameraImage, it)
}
} catch (e: CancellationException) {
throw e
} catch (e: Exception) {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import android.widget.Toast
import coil3.imageLoader
import coil3.request.ImageRequest
import coil3.request.allowHardware
import coil3.toBitmap
import com.google.android.material.color.DynamicColors
import com.mikepenz.iconics.IconicsDrawable
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
Expand All @@ -25,7 +26,6 @@ import io.homeassistant.companion.android.database.widget.MediaPlayerControlsWid
import io.homeassistant.companion.android.database.widget.MediaPlayerControlsWidgetEntity
import io.homeassistant.companion.android.database.widget.WidgetBackgroundType
import io.homeassistant.companion.android.widgets.BaseWidgetProvider
import io.homeassistant.companion.android.widgets.common.RemoteViewsTarget
import java.util.LinkedList
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.Dispatchers
Expand Down Expand Up @@ -254,16 +254,16 @@ class MediaPlayerControlsWidget : BaseWidgetProvider<MediaPlayerControlsWidgetEn
)
Timber.d("Fetching media preview image")
try {
val request = ImageRequest.Builder(context)
.data(url)
.target(RemoteViewsTarget(this, R.id.widgetMediaImage))
// RemoteViews requires software bitmaps for serialization
.allowHardware(false)
.size(1024)
.build()
// Wait for the image to be loaded before returning the RemoteViews
// to avoid concurrent modifications between Coil and updateAppWidget.
context.imageLoader.enqueue(request).job.join()
context.imageLoader.execute(
ImageRequest.Builder(context)
.data(url)
// RemoteViews requires software bitmaps for serialization
.allowHardware(false)
.size(1024)
.build(),
).image?.toBitmap()?.let {
setImageViewBitmap(R.id.widgetMediaImage, it)
}
} catch (e: CancellationException) {
throw e
} catch (e: Exception) {
Expand Down
Loading