diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyWidgetProvider.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyWidgetProvider.kt index c4a8229f9..f61831a30 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyWidgetProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyWidgetProvider.kt @@ -3,16 +3,12 @@ package com.simplemobiletools.gallery.pro.helpers import android.app.PendingIntent import android.appwidget.AppWidgetManager import android.appwidget.AppWidgetProvider -import android.content.ComponentName import android.content.Context import android.content.Intent -import android.os.Handler -import android.os.Looper import android.widget.RemoteViews import com.bumptech.glide.Glide import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.request.RequestOptions -import com.bumptech.glide.request.target.AppWidgetTarget import com.simplemobiletools.commons.extensions.setBackgroundColor import com.simplemobiletools.commons.extensions.setText import com.simplemobiletools.commons.extensions.setVisibleIf @@ -34,11 +30,13 @@ class MyWidgetProvider : AppWidgetProvider() { override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) { super.onUpdate(context, appWidgetManager, appWidgetIds) Thread { - context.widgetsDB.getWidgets().forEach { + val widgets = context.widgetsDB.getWidgets() + val config = context.config + widgets.forEach { val views = RemoteViews(context.packageName, R.layout.widget).apply { - setBackgroundColor(R.id.widget_holder, context.config.widgetBgColor) - setVisibleIf(R.id.widget_folder_name, context.config.showWidgetFolderName) - setTextColor(R.id.widget_folder_name, context.config.widgetTextColor) + setBackgroundColor(R.id.widget_holder, config.widgetBgColor) + setVisibleIf(R.id.widget_folder_name, config.showWidgetFolderName) + setTextColor(R.id.widget_folder_name, config.widgetTextColor) setText(R.id.widget_folder_name, context.getFolderNameFromPath(it.folderPath)) } @@ -48,20 +46,18 @@ class MyWidgetProvider : AppWidgetProvider() { .diskCacheStrategy(DiskCacheStrategy.RESOURCE) if (context.config.cropThumbnails) options.centerCrop() else options.fitCenter() - Handler(Looper.getMainLooper()).post { - val widgetSize = context.resources.getDimension(R.dimen.widget_initial_size).toInt() - val componentName = ComponentName(context, MyWidgetProvider::class.java) - val appWidgetTarget = object : AppWidgetTarget(context, widgetSize, widgetSize, R.id.widget_imageview, views, componentName) {} + val widgetSize = context.resources.getDimension(R.dimen.widget_initial_size).toInt() + val image = Glide.with(context) + .asBitmap() + .load(path) + .apply(options) + .submit(widgetSize, widgetSize) + .get() - Glide.with(context) - .asBitmap() - .load(path) - .apply(options) - .into(appWidgetTarget) + views.setImageViewBitmap(R.id.widget_imageview, image) - setupAppOpenIntent(context, views, R.id.widget_holder, it) - appWidgetManager.updateAppWidget(it.widgetId, views) - } + setupAppOpenIntent(context, views, R.id.widget_holder, it) + appWidgetManager.updateAppWidget(it.widgetId, views) } }.start() }