diff --git a/app/src/main/java/org/tasks/widget/AppWidgetManager.java b/app/src/main/java/org/tasks/widget/AppWidgetManager.java deleted file mode 100644 index cd0dbbb47..000000000 --- a/app/src/main/java/org/tasks/widget/AppWidgetManager.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.tasks.widget; - -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import dagger.hilt.android.qualifiers.ApplicationContext; -import javax.inject.Inject; -import org.tasks.R; - -public class AppWidgetManager { - - private final android.appwidget.AppWidgetManager appWidgetManager; - private final Context context; - - @Inject - public AppWidgetManager(@ApplicationContext Context context) { - this.context = context; - appWidgetManager = android.appwidget.AppWidgetManager.getInstance(context); - } - - public void updateWidgets() { - appWidgetManager.notifyAppWidgetViewDataChanged(getWidgetIds(), R.id.list_view); - } - - public void reconfigureWidgets(int... appWidgetIds) { - Intent intent = new Intent(context, TasksWidget.class); - intent.setAction(android.appwidget.AppWidgetManager.ACTION_APPWIDGET_UPDATE); - intent.putExtra( - android.appwidget.AppWidgetManager.EXTRA_APPWIDGET_IDS, - appWidgetIds.length == 0 ? getWidgetIds() : appWidgetIds); - context.sendBroadcast(intent); - updateWidgets(); - } - - public int[] getWidgetIds() { - return appWidgetManager.getAppWidgetIds(new ComponentName(context, TasksWidget.class)); - } -} diff --git a/app/src/main/java/org/tasks/widget/AppWidgetManager.kt b/app/src/main/java/org/tasks/widget/AppWidgetManager.kt new file mode 100644 index 000000000..baa8eaa4b --- /dev/null +++ b/app/src/main/java/org/tasks/widget/AppWidgetManager.kt @@ -0,0 +1,35 @@ +package org.tasks.widget + +import android.appwidget.AppWidgetManager +import android.content.ComponentName +import android.content.Context +import android.content.Intent +import dagger.hilt.android.qualifiers.ApplicationContext +import org.tasks.R +import org.tasks.widget.TasksWidget +import javax.inject.Inject + +class AppWidgetManager @Inject constructor( + @param:ApplicationContext private val context: Context +) { + private val appWidgetManager: AppWidgetManager? = AppWidgetManager.getInstance(context) + + val widgetIds: IntArray + get() = appWidgetManager + ?.getAppWidgetIds(ComponentName(context, TasksWidget::class.java)) + ?: intArrayOf() + + fun reconfigureWidgets(vararg appWidgetIds: Int) { + val intent = Intent(context, TasksWidget::class.java) + intent.action = AppWidgetManager.ACTION_APPWIDGET_UPDATE + intent.putExtra( + AppWidgetManager.EXTRA_APPWIDGET_IDS, + appWidgetIds.takeIf { it.isNotEmpty() } ?: widgetIds) + context.sendBroadcast(intent) + updateWidgets() + } + + fun updateWidgets() { + appWidgetManager?.notifyAppWidgetViewDataChanged(widgetIds, R.id.list_view) + } +} \ No newline at end of file