extension filtering
This commit is contained in:
parent
d3f097f675
commit
97ed84127e
10 changed files with 39 additions and 3 deletions
|
@ -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) {
|
||||
|
|
|
@ -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<ViewGroup.LayoutParams> {
|
||||
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()
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -76,7 +76,9 @@ class AnimeExtensionsViewModel(
|
|||
prefetchDistance = 15
|
||||
)
|
||||
) {
|
||||
AnimeExtensionPagingSource(available, installed, query)
|
||||
val aEPS = AnimeExtensionPagingSource(available, installed, query)
|
||||
currentPagingSource = aEPS
|
||||
aEPS
|
||||
}.flow
|
||||
}.cachedIn(viewModelScope)
|
||||
}
|
||||
|
|
|
@ -75,7 +75,9 @@ class MangaExtensionsViewModel(
|
|||
prefetchDistance = 15
|
||||
)
|
||||
) {
|
||||
MangaExtensionPagingSource(available, installed, query)
|
||||
val mEPS = MangaExtensionPagingSource(available, installed, query)
|
||||
currentPagingSource = mEPS
|
||||
mEPS
|
||||
}.flow
|
||||
}.cachedIn(viewModelScope)
|
||||
}
|
||||
|
|
|
@ -76,7 +76,9 @@ class NovelExtensionsViewModel(
|
|||
prefetchDistance = 15
|
||||
)
|
||||
) {
|
||||
NovelExtensionPagingSource(available, installed, query)
|
||||
val nEPS = NovelExtensionPagingSource(available, installed, query)
|
||||
currentPagingSource = nEPS
|
||||
nEPS
|
||||
}.flow
|
||||
}.cachedIn(viewModelScope)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue