From a3a4b04a54ac3128c569b8696557ba63d69214e0 Mon Sep 17 00:00:00 2001 From: Anoop Date: Fri, 30 Aug 2024 22:43:56 +0530 Subject: [PATCH] refactor --- .../com/ichi2/widget/cardanalysis/CardAnalysisWidget.kt | 5 +++++ .../ichi2/widget/cardanalysis/CardAnalysisWidgetConfig.kt | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidget.kt b/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidget.kt index 102e54ef6019..4e657f4ea518 100644 --- a/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidget.kt +++ b/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidget.kt @@ -76,6 +76,11 @@ class CardAnalysisWidget : AnalyticsWidgetProvider() { val deckData = getDeckNameAndStats(deckId.toList()) if (deckData.isEmpty()) { + // If the deck was deleted, clear the stored deck ID + val widgetPreferences = CardAnalysisWidgetPreferences(context) + val selectedDeck = longArrayOf().map { it.toString() } + widgetPreferences.saveSelectedDeck(appWidgetId, selectedDeck) + // Show empty_widget and set click listener to open configuration remoteViews.setViewVisibility(R.id.empty_widget, View.VISIBLE) remoteViews.setViewVisibility(R.id.cardAnalysisDataHolder, View.GONE) diff --git a/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidgetConfig.kt b/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidgetConfig.kt index 4cb728e1a3f1..a4fded4804d3 100644 --- a/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidgetConfig.kt +++ b/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidgetConfig.kt @@ -103,7 +103,11 @@ class CardAnalysisWidgetConfig : AnkiActivity(), DeckSelectionListener, BaseSnac } initializeUIComponents() - showDeckSelectionDialog() + // Show the Deck selection dialog only when there are no decks selected while opening the configuration screen. + val selectedDeckIds = cardAnalysisWidgetPreferences.getSelectedDeckIdFromPreferences(appWidgetId) + if (selectedDeckIds.isEmpty()) { + showDeckSelectionDialog() + } } }