Skip to content

Commit

Permalink
fixing the unit test failure.
Browse files Browse the repository at this point in the history
  • Loading branch information
xenonnn4w committed Aug 9, 2024
1 parent 4dc7f25 commit 5e8c1b3
Showing 1 changed file with 29 additions and 3 deletions.
32 changes: 29 additions & 3 deletions AnkiDroid/src/main/java/com/ichi2/widget/DeckPickerWidgetConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,18 @@ package com.ichi2.widget
import android.appwidget.AppWidgetManager
import android.content.BroadcastReceiver
import android.content.Context
import android.content.ContextWrapper
import android.content.Intent
import android.content.IntentFilter
import android.os.Bundle
import android.view.View
import android.widget.Button
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.ichi2.anki.AnkiActivity
import com.ichi2.anki.R
import com.ichi2.anki.dialogs.DeckSelectionDialog
import com.ichi2.anki.dialogs.DeckSelectionDialog.DeckSelectionListener
Expand All @@ -46,14 +47,18 @@ import timber.log.Timber
* User can Select up to 5 decks.
* User Can remove, reorder decks and reconfigure by holding the widget .
*/
class DeckPickerWidgetConfig : FragmentActivity(), DeckSelectionListener {
class DeckPickerWidgetConfig : AnkiActivity(), DeckSelectionListener {

private var appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID
lateinit var deckAdapter: WidgetConfigScreenAdapter
private lateinit var deckPickerWidgetPreferences: WidgetPreferences
private val MAX_DECKS_ALLOWED = 5 // Maximum number of decks allowed in the widget

override fun onCreate(savedInstanceState: Bundle?) {
if (showedActivityFailedScreen(savedInstanceState)) {
return
}

super.onCreate(savedInstanceState)
setContentView(R.layout.widget_deck_picker_config)

Expand Down Expand Up @@ -110,7 +115,7 @@ class DeckPickerWidgetConfig : FragmentActivity(), DeckSelectionListener {

override fun onDestroy() {
super.onDestroy()
unregisterReceiver(widgetRemovedReceiver)
unregisterReceiverSilently(widgetRemovedReceiver)
}

fun loadSavedPreferences() {
Expand Down Expand Up @@ -245,3 +250,24 @@ class DeckPickerWidgetConfig : FragmentActivity(), DeckSelectionListener {
}
}
}

/**
* Unregisters a broadcast receiver from the context silently.
*
* This extension function attempts to unregister a broadcast receiver from the context
* without throwing an exception if the receiver is not registered.
* It catches the `IllegalArgumentException` that is thrown when attempting to unregister
* a receiver that is not registered, allowing the operation to fail gracefully without crashing.
*
* @param receiver The broadcast receiver to be unregistered.
*
* @see ContextWrapper.unregisterReceiver
* @see IllegalArgumentException
*/
fun ContextWrapper.unregisterReceiverSilently(receiver: BroadcastReceiver) {
try {
unregisterReceiver(receiver)
} catch (e: IllegalArgumentException) {
Timber.d(e, "unregisterReceiverSilently")
}
}

0 comments on commit 5e8c1b3

Please sign in to comment.