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 ?: "")
|
viewModel.setSearchQuery(query ?: "")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun notifyDataChanged() {
|
||||||
|
viewModel.invalidatePager()
|
||||||
|
}
|
||||||
|
|
||||||
override fun onInstallClick(pkg: AnimeExtension.Available) {
|
override fun onInstallClick(pkg: AnimeExtension.Available) {
|
||||||
val context = requireContext()
|
val context = requireContext()
|
||||||
if (isAdded) {
|
if (isAdded) {
|
||||||
|
|
|
@ -7,6 +7,7 @@ import android.os.Build.VERSION.*
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.text.Editable
|
import android.text.Editable
|
||||||
import android.text.TextWatcher
|
import android.text.TextWatcher
|
||||||
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.AutoCompleteTextView
|
import android.widget.AutoCompleteTextView
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
@ -64,6 +65,8 @@ class ExtensionsActivity : AppCompatActivity() {
|
||||||
searchView.setText("")
|
searchView.setText("")
|
||||||
searchView.clearFocus()
|
searchView.clearFocus()
|
||||||
tabLayout.clearFocus()
|
tabLayout.clearFocus()
|
||||||
|
if (tab.text?.contains("Installed") == true) binding.languageselect.visibility = View.GONE
|
||||||
|
else binding.languageselect.visibility = View.VISIBLE
|
||||||
viewPager.updateLayoutParams<ViewGroup.LayoutParams> {
|
viewPager.updateLayoutParams<ViewGroup.LayoutParams> {
|
||||||
height = ViewGroup.LayoutParams.MATCH_PARENT
|
height = ViewGroup.LayoutParams.MATCH_PARENT
|
||||||
}
|
}
|
||||||
|
@ -123,6 +126,11 @@ class ExtensionsActivity : AppCompatActivity() {
|
||||||
builder.setTitle("Language")
|
builder.setTitle("Language")
|
||||||
builder.setSingleChoiceItems(languageOptions, index){ dialog, i ->
|
builder.setSingleChoiceItems(languageOptions, index){ dialog, i ->
|
||||||
PrefManager.setVal(PrefName.LangSort, LanguageMapper.Companion.Language.entries[i].code)
|
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()
|
dialog.dismiss()
|
||||||
}
|
}
|
||||||
val dialog = builder.show()
|
val dialog = builder.show()
|
||||||
|
@ -140,4 +148,5 @@ class ExtensionsActivity : AppCompatActivity() {
|
||||||
|
|
||||||
interface SearchQueryHandler {
|
interface SearchQueryHandler {
|
||||||
fun updateContentBasedOnQuery(query: String?)
|
fun updateContentBasedOnQuery(query: String?)
|
||||||
|
fun notifyDataChanged()
|
||||||
}
|
}
|
||||||
|
|
|
@ -248,6 +248,9 @@ class InstalledAnimeExtensionsFragment : Fragment(), SearchQueryHandler {
|
||||||
extensionsAdapter.filter(query ?: "", animeExtensionManager.installedExtensionsFlow.value)
|
extensionsAdapter.filter(query ?: "", animeExtensionManager.installedExtensionsFlow.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun notifyDataChanged() { // Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
private class AnimeExtensionsAdapter(
|
private class AnimeExtensionsAdapter(
|
||||||
private val onSettingsClicked: (AnimeExtension.Installed) -> Unit,
|
private val onSettingsClicked: (AnimeExtension.Installed) -> Unit,
|
||||||
private val onUninstallClicked: (AnimeExtension.Installed, Boolean) -> Unit,
|
private val onUninstallClicked: (AnimeExtension.Installed, Boolean) -> Unit,
|
||||||
|
|
|
@ -243,6 +243,9 @@ class InstalledMangaExtensionsFragment : Fragment(), SearchQueryHandler {
|
||||||
extensionsAdapter.filter(query ?: "", mangaExtensionManager.installedExtensionsFlow.value)
|
extensionsAdapter.filter(query ?: "", mangaExtensionManager.installedExtensionsFlow.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun notifyDataChanged() { // Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
private class MangaExtensionsAdapter(
|
private class MangaExtensionsAdapter(
|
||||||
private val onSettingsClicked: (MangaExtension.Installed) -> Unit,
|
private val onSettingsClicked: (MangaExtension.Installed) -> Unit,
|
||||||
private val onUninstallClicked: (MangaExtension.Installed, Boolean) -> Unit,
|
private val onUninstallClicked: (MangaExtension.Installed, Boolean) -> Unit,
|
||||||
|
|
|
@ -130,6 +130,9 @@ class InstalledNovelExtensionsFragment : Fragment(), SearchQueryHandler {
|
||||||
extensionsAdapter.filter(query ?: "", novelExtensionManager.installedExtensionsFlow.value)
|
extensionsAdapter.filter(query ?: "", novelExtensionManager.installedExtensionsFlow.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun notifyDataChanged() { // do nothing
|
||||||
|
}
|
||||||
|
|
||||||
private class NovelExtensionsAdapter(
|
private class NovelExtensionsAdapter(
|
||||||
private val onSettingsClicked: (NovelExtension.Installed) -> Unit,
|
private val onSettingsClicked: (NovelExtension.Installed) -> Unit,
|
||||||
private val onUninstallClicked: (NovelExtension.Installed, Boolean) -> Unit,
|
private val onUninstallClicked: (NovelExtension.Installed, Boolean) -> Unit,
|
||||||
|
|
|
@ -72,6 +72,10 @@ class MangaExtensionsFragment : Fragment(),
|
||||||
viewModel.setSearchQuery(query ?: "")
|
viewModel.setSearchQuery(query ?: "")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun notifyDataChanged() {
|
||||||
|
viewModel.invalidatePager()
|
||||||
|
}
|
||||||
|
|
||||||
override fun onInstallClick(pkg: MangaExtension.Available) {
|
override fun onInstallClick(pkg: MangaExtension.Available) {
|
||||||
if (isAdded) { // Check if the fragment is currently added to its activity
|
if (isAdded) { // Check if the fragment is currently added to its activity
|
||||||
val context = requireContext()
|
val context = requireContext()
|
||||||
|
|
|
@ -73,6 +73,10 @@ class NovelExtensionsFragment : Fragment(),
|
||||||
viewModel.setSearchQuery(query ?: "")
|
viewModel.setSearchQuery(query ?: "")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun notifyDataChanged() {
|
||||||
|
viewModel.invalidatePager()
|
||||||
|
}
|
||||||
|
|
||||||
override fun onInstallClick(pkg: NovelExtension.Available) {
|
override fun onInstallClick(pkg: NovelExtension.Available) {
|
||||||
if (isAdded) { // Check if the fragment is currently added to its activity
|
if (isAdded) { // Check if the fragment is currently added to its activity
|
||||||
val context = requireContext()
|
val context = requireContext()
|
||||||
|
|
|
@ -76,7 +76,9 @@ class AnimeExtensionsViewModel(
|
||||||
prefetchDistance = 15
|
prefetchDistance = 15
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
AnimeExtensionPagingSource(available, installed, query)
|
val aEPS = AnimeExtensionPagingSource(available, installed, query)
|
||||||
|
currentPagingSource = aEPS
|
||||||
|
aEPS
|
||||||
}.flow
|
}.flow
|
||||||
}.cachedIn(viewModelScope)
|
}.cachedIn(viewModelScope)
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,9 @@ class MangaExtensionsViewModel(
|
||||||
prefetchDistance = 15
|
prefetchDistance = 15
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
MangaExtensionPagingSource(available, installed, query)
|
val mEPS = MangaExtensionPagingSource(available, installed, query)
|
||||||
|
currentPagingSource = mEPS
|
||||||
|
mEPS
|
||||||
}.flow
|
}.flow
|
||||||
}.cachedIn(viewModelScope)
|
}.cachedIn(viewModelScope)
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,9 @@ class NovelExtensionsViewModel(
|
||||||
prefetchDistance = 15
|
prefetchDistance = 15
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
NovelExtensionPagingSource(available, installed, query)
|
val nEPS = NovelExtensionPagingSource(available, installed, query)
|
||||||
|
currentPagingSource = nEPS
|
||||||
|
nEPS
|
||||||
}.flow
|
}.flow
|
||||||
}.cachedIn(viewModelScope)
|
}.cachedIn(viewModelScope)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue