From 3dd0757fca956f359b8dbcd2fec71255d94e2a64 Mon Sep 17 00:00:00 2001 From: lukstbit <52494258+lukstbit@users.noreply.github.com> Date: Sun, 9 Feb 2025 20:02:14 +0200 Subject: [PATCH] Remove TagsDialog code related to custom study by tags --- .../dialogs/customstudy/TagLimitFragment.kt | 4 + .../com/ichi2/anki/dialogs/tags/TagsDialog.kt | 6 -- .../ichi2/anki/dialogs/tags/TagsDialogTest.kt | 75 ------------------- 3 files changed, 4 insertions(+), 81 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/customstudy/TagLimitFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/customstudy/TagLimitFragment.kt index c7022d198c3a..f5f36c9f3b51 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/customstudy/TagLimitFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/customstudy/TagLimitFragment.kt @@ -47,6 +47,10 @@ import kotlinx.coroutines.launch * Fragment that allows the user to select tags to include and/or exclude for the custom study * session that is being created. Similar to the desktop TagLimit class. * https://github.com/ankitects/anki/blob/main/qt/aqt/taglimit.py#L17 + * + * Will return, as a fragment result, two lists of tags(as Strings) representing the included and + * excluded tags for custom studying. + * * @see CustomStudyDialog */ class TagLimitFragment : DialogFragment() { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/tags/TagsDialog.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/tags/TagsDialog.kt index 387fa96aa974..cff8f7e697fd 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/tags/TagsDialog.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/tags/TagsDialog.kt @@ -44,7 +44,6 @@ import com.ichi2.utils.positiveButton import com.ichi2.utils.show import com.ichi2.utils.title import kotlinx.serialization.Serializable -import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import org.apache.commons.io.FileUtils import timber.log.Timber @@ -65,11 +64,6 @@ class TagsDialog : AnalyticsDialogFragment { * Filter notes by tags */ FILTER_BY_TAG, - - /** - * A custom study session filtered by tags - */ - CUSTOM_STUDY_TAGS, } private var type: DialogType? = null diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/dialogs/tags/TagsDialogTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/dialogs/tags/TagsDialogTest.kt index 21fde85a5d49..e6d5344d87bb 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/dialogs/tags/TagsDialogTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/dialogs/tags/TagsDialogTest.kt @@ -15,24 +15,17 @@ */ package com.ichi2.anki.dialogs.tags -import android.content.DialogInterface import android.os.Bundle -import android.view.View import android.widget.EditText -import android.widget.RadioGroup import androidx.appcompat.app.AlertDialog import androidx.core.os.BundleCompat import androidx.fragment.app.testing.FragmentScenario import androidx.lifecycle.Lifecycle -import androidx.lifecycle.LifecycleOwner -import androidx.lifecycle.LifecycleRegistry import androidx.recyclerview.widget.RecyclerView import androidx.test.ext.junit.runners.AndroidJUnit4 import com.ichi2.anki.R import com.ichi2.anki.RobolectricTest import com.ichi2.anki.dialogs.utils.AnKingTags -import com.ichi2.anki.model.CardStateFilter -import com.ichi2.compat.CompatHelper.Companion.getSerializableCompat import com.ichi2.testutils.HamcrestUtils.containsInAnyOrder import com.ichi2.testutils.ParametersUtils import com.ichi2.testutils.RecyclerViewUtils @@ -44,68 +37,10 @@ import org.junit.Assert import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mockito -import org.mockito.kotlin.whenever import timber.log.Timber -import java.util.concurrent.atomic.AtomicReference @RunWith(AndroidJUnit4::class) class TagsDialogTest : RobolectricTest() { - @Test - fun testTagsDialogCustomStudyOptionInterface() { - val type = TagsDialog.DialogType.CUSTOM_STUDY_TAGS - val allTags = listOf("1", "2", "3", "4") - val args = - TagsDialog(ParametersUtils.whatever()) - .withTestArguments(type, ArrayList(), allTags) - .requireArguments() - val mockListener = Mockito.mock(TagsDialogListener::class.java) - val factory = TagsDialogFactory(mockListener) - runTagsDialogScenario(args, factory) { f: TagsDialog -> - val dialog = f.dialog as AlertDialog? - assertThat(dialog, IsNull.notNullValue()) - - val optionsGroup = dialog!!.findViewById(R.id.tags_dialog_options_radiogroup)!! - Assert.assertEquals(optionsGroup.visibility.toLong(), View.VISIBLE.toLong()) - val expectedOption = CardStateFilter.NEW - optionsGroup.getChildAt(1).performClick() - dialog.getButton(DialogInterface.BUTTON_POSITIVE).callOnClick() - advanceRobolectricLooper() - Mockito.verify(mockListener, Mockito.times(1)).onSelectedTags(ArrayList(), ArrayList(), expectedOption) - } - } - - @Test - fun testTagsDialogCustomStudyOptionFragmentAPI() { - val type = TagsDialog.DialogType.CUSTOM_STUDY_TAGS - val allTags = listOf("1", "2", "3", "4") - val args = - TagsDialog(ParametersUtils.whatever()) - .withTestArguments(type, ArrayList(), allTags) - .requireArguments() - runTagsDialogScenario(args) { f: TagsDialog -> - val dialog = f.dialog as AlertDialog? - assertThat(dialog, IsNull.notNullValue()) - val returnedList = AtomicReference?>() - val returnedOption = AtomicReference() - f.parentFragmentManager.setFragmentResultListener( - TagsDialogListener.ON_SELECTED_TAGS_KEY, - mockLifecycleOwner(), - ) { _: String?, bundle: Bundle -> - returnedList.set(bundle.getStringArrayList(TagsDialogListener.ON_SELECTED_TAGS__SELECTED_TAGS)) - returnedOption.set(bundle.getSerializableCompat(TagsDialogListener.ON_SELECTED_TAGS__OPTION)) - } - - val optionsGroup = dialog!!.findViewById(R.id.tags_dialog_options_radiogroup)!! - Assert.assertEquals(optionsGroup.visibility.toLong(), View.VISIBLE.toLong()) - val expectedOption = CardStateFilter.DUE - optionsGroup.getChildAt(2).performClick() - dialog.getButton(DialogInterface.BUTTON_POSITIVE).callOnClick() - advanceRobolectricLooper() - ListUtil.assertListEquals(ArrayList(), returnedList.get()) - Assert.assertEquals(expectedOption, returnedOption.get()) - } - } - // regression test #8762 // test for #8763 @Test @@ -712,14 +647,4 @@ class TagsDialogTest : RobolectricTest() { } } } - - companion object { - private fun mockLifecycleOwner(): LifecycleOwner { - val owner = Mockito.mock(LifecycleOwner::class.java) - val lifecycle = LifecycleRegistry(owner) - lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) - whenever(owner.lifecycle).thenReturn(lifecycle) - return owner - } - } }