diff --git a/app/src/main/java/ani/dantotsu/settings/AnimeExtensionsFragment.kt b/app/src/main/java/ani/dantotsu/settings/AnimeExtensionsFragment.kt index e46b1d71..b0f20da1 100644 --- a/app/src/main/java/ani/dantotsu/settings/AnimeExtensionsFragment.kt +++ b/app/src/main/java/ani/dantotsu/settings/AnimeExtensionsFragment.kt @@ -71,6 +71,10 @@ class AnimeExtensionsFragment : Fragment(), viewModel.setSearchQuery(query ?: "") } + override fun notifyDataChanged() { + viewModel.invalidatePager() + } + override fun onInstallClick(pkg: AnimeExtension.Available) { val context = requireContext() if (isAdded) { diff --git a/app/src/main/java/ani/dantotsu/settings/ExtensionsActivity.kt b/app/src/main/java/ani/dantotsu/settings/ExtensionsActivity.kt index cf1c0ee9..7874070a 100644 --- a/app/src/main/java/ani/dantotsu/settings/ExtensionsActivity.kt +++ b/app/src/main/java/ani/dantotsu/settings/ExtensionsActivity.kt @@ -7,6 +7,7 @@ import android.os.Build.VERSION.* import android.os.Bundle import android.text.Editable import android.text.TextWatcher +import android.view.View import android.view.ViewGroup import android.widget.AutoCompleteTextView import androidx.appcompat.app.AppCompatActivity @@ -64,6 +65,8 @@ class ExtensionsActivity : AppCompatActivity() { searchView.setText("") searchView.clearFocus() tabLayout.clearFocus() + if (tab.text?.contains("Installed") == true) binding.languageselect.visibility = View.GONE + else binding.languageselect.visibility = View.VISIBLE viewPager.updateLayoutParams { height = ViewGroup.LayoutParams.MATCH_PARENT } @@ -123,6 +126,11 @@ class ExtensionsActivity : AppCompatActivity() { builder.setTitle("Language") builder.setSingleChoiceItems(languageOptions, index){ dialog, i -> PrefManager.setVal(PrefName.LangSort, LanguageMapper.Companion.Language.entries[i].code) + val currentFragment = + supportFragmentManager.findFragmentByTag("f${viewPager.currentItem}") + if (currentFragment is SearchQueryHandler) { + currentFragment.notifyDataChanged() + } dialog.dismiss() } val dialog = builder.show() @@ -140,4 +148,5 @@ class ExtensionsActivity : AppCompatActivity() { interface SearchQueryHandler { fun updateContentBasedOnQuery(query: String?) + fun notifyDataChanged() } diff --git a/app/src/main/java/ani/dantotsu/settings/InstalledAnimeExtensionsFragment.kt b/app/src/main/java/ani/dantotsu/settings/InstalledAnimeExtensionsFragment.kt index d49a6212..0e47a0be 100644 --- a/app/src/main/java/ani/dantotsu/settings/InstalledAnimeExtensionsFragment.kt +++ b/app/src/main/java/ani/dantotsu/settings/InstalledAnimeExtensionsFragment.kt @@ -248,6 +248,9 @@ class InstalledAnimeExtensionsFragment : Fragment(), SearchQueryHandler { extensionsAdapter.filter(query ?: "", animeExtensionManager.installedExtensionsFlow.value) } + override fun notifyDataChanged() { // Do nothing + } + private class AnimeExtensionsAdapter( private val onSettingsClicked: (AnimeExtension.Installed) -> Unit, private val onUninstallClicked: (AnimeExtension.Installed, Boolean) -> Unit, diff --git a/app/src/main/java/ani/dantotsu/settings/InstalledMangaExtensionsFragment.kt b/app/src/main/java/ani/dantotsu/settings/InstalledMangaExtensionsFragment.kt index ede77485..f1272a2c 100644 --- a/app/src/main/java/ani/dantotsu/settings/InstalledMangaExtensionsFragment.kt +++ b/app/src/main/java/ani/dantotsu/settings/InstalledMangaExtensionsFragment.kt @@ -243,6 +243,9 @@ class InstalledMangaExtensionsFragment : Fragment(), SearchQueryHandler { extensionsAdapter.filter(query ?: "", mangaExtensionManager.installedExtensionsFlow.value) } + override fun notifyDataChanged() { // Do nothing + } + private class MangaExtensionsAdapter( private val onSettingsClicked: (MangaExtension.Installed) -> Unit, private val onUninstallClicked: (MangaExtension.Installed, Boolean) -> Unit, diff --git a/app/src/main/java/ani/dantotsu/settings/InstalledNovelExtensionsFragment.kt b/app/src/main/java/ani/dantotsu/settings/InstalledNovelExtensionsFragment.kt index d31bf584..598ba604 100644 --- a/app/src/main/java/ani/dantotsu/settings/InstalledNovelExtensionsFragment.kt +++ b/app/src/main/java/ani/dantotsu/settings/InstalledNovelExtensionsFragment.kt @@ -130,6 +130,9 @@ class InstalledNovelExtensionsFragment : Fragment(), SearchQueryHandler { extensionsAdapter.filter(query ?: "", novelExtensionManager.installedExtensionsFlow.value) } + override fun notifyDataChanged() { // do nothing + } + private class NovelExtensionsAdapter( private val onSettingsClicked: (NovelExtension.Installed) -> Unit, private val onUninstallClicked: (NovelExtension.Installed, Boolean) -> Unit, diff --git a/app/src/main/java/ani/dantotsu/settings/MangaExtensionsFragment.kt b/app/src/main/java/ani/dantotsu/settings/MangaExtensionsFragment.kt index e3d14ee6..be65cc95 100644 --- a/app/src/main/java/ani/dantotsu/settings/MangaExtensionsFragment.kt +++ b/app/src/main/java/ani/dantotsu/settings/MangaExtensionsFragment.kt @@ -72,6 +72,10 @@ class MangaExtensionsFragment : Fragment(), viewModel.setSearchQuery(query ?: "") } + override fun notifyDataChanged() { + viewModel.invalidatePager() + } + override fun onInstallClick(pkg: MangaExtension.Available) { if (isAdded) { // Check if the fragment is currently added to its activity val context = requireContext() diff --git a/app/src/main/java/ani/dantotsu/settings/NovelExtensionsFragment.kt b/app/src/main/java/ani/dantotsu/settings/NovelExtensionsFragment.kt index a700dded..1148cdc3 100644 --- a/app/src/main/java/ani/dantotsu/settings/NovelExtensionsFragment.kt +++ b/app/src/main/java/ani/dantotsu/settings/NovelExtensionsFragment.kt @@ -73,6 +73,10 @@ class NovelExtensionsFragment : Fragment(), viewModel.setSearchQuery(query ?: "") } + override fun notifyDataChanged() { + viewModel.invalidatePager() + } + override fun onInstallClick(pkg: NovelExtension.Available) { if (isAdded) { // Check if the fragment is currently added to its activity val context = requireContext() diff --git a/app/src/main/java/ani/dantotsu/settings/paging/AnimePagingSource.kt b/app/src/main/java/ani/dantotsu/settings/paging/AnimePagingSource.kt index 6edd17c7..779b3bf6 100644 --- a/app/src/main/java/ani/dantotsu/settings/paging/AnimePagingSource.kt +++ b/app/src/main/java/ani/dantotsu/settings/paging/AnimePagingSource.kt @@ -76,7 +76,9 @@ class AnimeExtensionsViewModel( prefetchDistance = 15 ) ) { - AnimeExtensionPagingSource(available, installed, query) + val aEPS = AnimeExtensionPagingSource(available, installed, query) + currentPagingSource = aEPS + aEPS }.flow }.cachedIn(viewModelScope) } diff --git a/app/src/main/java/ani/dantotsu/settings/paging/MangaPagingSource.kt b/app/src/main/java/ani/dantotsu/settings/paging/MangaPagingSource.kt index 673eac1c..c2a2e942 100644 --- a/app/src/main/java/ani/dantotsu/settings/paging/MangaPagingSource.kt +++ b/app/src/main/java/ani/dantotsu/settings/paging/MangaPagingSource.kt @@ -75,7 +75,9 @@ class MangaExtensionsViewModel( prefetchDistance = 15 ) ) { - MangaExtensionPagingSource(available, installed, query) + val mEPS = MangaExtensionPagingSource(available, installed, query) + currentPagingSource = mEPS + mEPS }.flow }.cachedIn(viewModelScope) } diff --git a/app/src/main/java/ani/dantotsu/settings/paging/NovelPagingSource.kt b/app/src/main/java/ani/dantotsu/settings/paging/NovelPagingSource.kt index df064875..d9d6dfe9 100644 --- a/app/src/main/java/ani/dantotsu/settings/paging/NovelPagingSource.kt +++ b/app/src/main/java/ani/dantotsu/settings/paging/NovelPagingSource.kt @@ -76,7 +76,9 @@ class NovelExtensionsViewModel( prefetchDistance = 15 ) ) { - NovelExtensionPagingSource(available, installed, query) + val nEPS = NovelExtensionPagingSource(available, installed, query) + currentPagingSource = nEPS + nEPS }.flow }.cachedIn(viewModelScope) }