From f1019a24fcdac1545a1046fdcf8b31d0ebe32eca Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Mon, 29 Dec 2025 10:20:24 -0600 Subject: [PATCH] Report missing widget icons --- .../org/tasks/widget/WidgetIconProvider.kt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/src/main/java/org/tasks/widget/WidgetIconProvider.kt b/app/src/main/java/org/tasks/widget/WidgetIconProvider.kt index 86f0335b2..01e794ef4 100644 --- a/app/src/main/java/org/tasks/widget/WidgetIconProvider.kt +++ b/app/src/main/java/org/tasks/widget/WidgetIconProvider.kt @@ -11,7 +11,12 @@ import androidx.core.graphics.createBitmap import androidx.core.net.toUri import com.mikepenz.iconics.IconicsDrawable import com.mikepenz.iconics.utils.sizeDp +import dagger.hilt.EntryPoint +import dagger.hilt.InstallIn +import dagger.hilt.android.EntryPointAccessors +import dagger.hilt.components.SingletonComponent import org.tasks.BuildConfig +import org.tasks.analytics.Firebase import org.tasks.icons.OutlinedGoogleMaterial import timber.log.Timber import java.io.File @@ -19,6 +24,12 @@ import java.io.FileOutputStream class WidgetIconProvider : ContentProvider() { + @EntryPoint + @InstallIn(SingletonComponent::class) + interface WidgetIconProviderEntryPoint { + val firebase: Firebase + } + override fun onCreate() = true override fun openFile(uri: Uri, mode: String): ParcelFileDescriptor? { @@ -76,10 +87,17 @@ class WidgetIconProvider : ContentProvider() { bitmap.recycle() } catch (e: Exception) { Timber.e(e, "Failed to generate icon: $iconName") + hilt().firebase.reportException(e) file.delete() } } + private fun hilt() = + EntryPointAccessors.fromApplication( + context!!.applicationContext, + WidgetIconProviderEntryPoint::class.java + ) + private fun getCacheFile(iconName: String): File { val context = context ?: throw IllegalStateException("Context is null") val cacheDir = File(context.cacheDir, "widget_icons")