Skip to content

Commit f0fe3bf

Browse files
committed
fix(widget): handle ACTION_APPWIDGET_OPTIONS_CHANGED resize event
1 parent 22fe96c commit f0fe3bf

2 files changed

Lines changed: 22 additions & 2 deletions

File tree

AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidget.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import com.ichi2.widget.AppWidgetId.Companion.INVALID_APPWIDGET_ID
4040
import com.ichi2.widget.AppWidgetId.Companion.getAppWidgetId
4141
import com.ichi2.widget.AppWidgetIds
4242
import com.ichi2.widget.cancelRecurringAlarm
43+
import com.ichi2.widget.deckpicker.DeckPickerWidget
4344
import com.ichi2.widget.deckpicker.DeckWidgetData
4445
import com.ichi2.widget.deckpicker.getDeckNameAndStats
4546
import com.ichi2.widget.getAppWidgetIdsEx
@@ -300,7 +301,18 @@ class CardAnalysisWidget : AnalyticsWidgetProvider() {
300301
}
301302
}
302303
AppWidgetManager.ACTION_APPWIDGET_OPTIONS_CHANGED -> {
303-
// TODO: #17151 not yet handled. Exists to stop ACRA errors
304+
Timber.d("ACTION_APPWIDGET_OPTIONS_CHANGED received from CardAnalysisWidget")
305+
val appWidgetId = intent.getAppWidgetId()
306+
if (appWidgetId != INVALID_APPWIDGET_ID) {
307+
Timber.d("Handling resize for widget ID: $appWidgetId")
308+
updateWidget(
309+
context,
310+
AppWidgetManager.getInstance(context),
311+
appWidgetId,
312+
)
313+
} else {
314+
Timber.e("Invalid widget ID received in ACTION_APPWIDGET_OPTIONS_CHANGED")
315+
}
304316
}
305317
AppWidgetManager.ACTION_APPWIDGET_DELETED -> {
306318
Timber.d("ACTION_APPWIDGET_DELETED received")

AnkiDroid/src/main/java/com/ichi2/widget/deckpicker/DeckPickerWidget.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,15 @@ class DeckPickerWidget : AnalyticsWidgetProvider() {
337337
}
338338
}
339339
AppWidgetManager.ACTION_APPWIDGET_OPTIONS_CHANGED -> {
340-
// TODO: #17151: not yet handled. Exists to stop ACRA errors
340+
Timber.d("ACTION_APPWIDGET_OPTIONS_CHANGED received from DeckPickerWidget")
341+
val appWidgetId = intent.getAppWidgetId()
342+
if (appWidgetId != INVALID_APPWIDGET_ID) {
343+
Timber.d("Handling resize for widget ID: $appWidgetId")
344+
val selectedDeckIds = widgetPreferences.getSelectedDeckIdsFromPreferences(appWidgetId)
345+
updateWidget(context, AppWidgetManager.getInstance(context), appWidgetId, selectedDeckIds)
346+
} else {
347+
Timber.e("Invalid widget ID received ACTION_APPWIDGET_OPTIONS_CHANGED")
348+
}
341349
}
342350
AppWidgetManager.ACTION_APPWIDGET_ENABLED -> {
343351
Timber.d("Widget enabled")

0 commit comments

Comments
 (0)