Convert AppWidgetManager to Kotlin

pull/1184/head
Alex Baker 4 years ago
parent 730c82a037
commit 1bf64ffec2

@ -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));
}
}

@ -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)
}
}
Loading…
Cancel
Save