Fix saved searches for android 6(and possibly others)

This commit is contained in:
Jobobby04 2020-06-21 16:01:01 -04:00
parent 777ce57a5a
commit ecda463183
3 changed files with 22 additions and 13 deletions

View File

@ -195,6 +195,9 @@ open class BrowseSourceController(bundle: Bundle) :
filterSheet = SourceFilterSheet( filterSheet = SourceFilterSheet(
activity!!, activity!!,
// SY -->
presenter.loadSearches(),
// SY <--
onFilterClicked = { onFilterClicked = {
val allDefault = presenter.sourceFilters == presenter.source.getFilterList() val allDefault = presenter.sourceFilters == presenter.source.getFilterList()
showProgressBar() showProgressBar()
@ -296,9 +299,6 @@ open class BrowseSourceController(bundle: Bundle) :
} }
// EXH <-- // EXH <--
) )
// EXH -->
filterSheet?.setSavedSearches(presenter.loadSearches())
// EXH <--
filterSheet?.setFilters(presenter.filterItems) filterSheet?.setFilters(presenter.filterItems)

View File

@ -2,12 +2,13 @@ package eu.kanade.tachiyomi.ui.browse.source.browse
import android.view.View import android.view.View
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.chip.Chip
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.flexibleadapter.items.IFlexible
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
class SavedSearchesItem : class SavedSearchesItem(val chips: List<Chip>) :
AbstractFlexibleItem<SavedSearchesHolder>() { AbstractFlexibleItem<SavedSearchesHolder>() {
override fun getLayoutRes(): Int { override fun getLayoutRes(): Int {
@ -31,7 +32,9 @@ class SavedSearchesItem :
holder: SavedSearchesHolder, holder: SavedSearchesHolder,
position: Int, position: Int,
payloads: MutableList<Any?>? payloads: MutableList<Any?>?
) {} ) {
holder.setChips(chips)
}
override fun equals(other: Any?): Boolean { override fun equals(other: Any?): Boolean {
return (this === other) return (this === other)

View File

@ -21,6 +21,9 @@ import kotlinx.android.synthetic.main.source_filter_sheet.view.save_search_btn
class SourceFilterSheet( class SourceFilterSheet(
activity: Activity, activity: Activity,
// SY -->
searches: List<EXHSavedSearch> = emptyList(),
// SY <--
onFilterClicked: () -> Unit, onFilterClicked: () -> Unit,
onResetClicked: () -> Unit, onResetClicked: () -> Unit,
// EXH --> // EXH -->
@ -33,7 +36,7 @@ class SourceFilterSheet(
private var filterNavView: FilterNavigationView private var filterNavView: FilterNavigationView
init { init {
filterNavView = FilterNavigationView(activity) filterNavView = FilterNavigationView(activity /* SY --> */, searches = searches/* SY <-- */)
filterNavView.onFilterClicked = { filterNavView.onFilterClicked = {
onFilterClicked() onFilterClicked()
this.dismiss() this.dismiss()
@ -65,7 +68,7 @@ class SourceFilterSheet(
} }
// SY <-- // SY <--
class FilterNavigationView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : class FilterNavigationView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null /* SY --> */, searches: List<EXHSavedSearch> = emptyList()/* SY <-- */) :
SimpleNavigationView(context, attrs) { SimpleNavigationView(context, attrs) {
var onFilterClicked = {} var onFilterClicked = {}
@ -78,8 +81,7 @@ class SourceFilterSheet(
var onSavedSearchDeleteClicked: (Int, String) -> Unit = { _, _ -> } var onSavedSearchDeleteClicked: (Int, String) -> Unit = { _, _ -> }
var savedSearchesItem = SavedSearchesItem() var savedSearchesAdapter: FlexibleAdapter<SavedSearchesItem> = FlexibleAdapter<SavedSearchesItem>(listOf(SavedSearchesItem(getChips(searches))))
var savedSearchesAdapter: FlexibleAdapter<SavedSearchesItem> = FlexibleAdapter<SavedSearchesItem>(listOf(savedSearchesItem))
// SY <-- // SY <--
val adapter: FlexibleAdapter<IFlexible<*>> = FlexibleAdapter<IFlexible<*>>(null) val adapter: FlexibleAdapter<IFlexible<*>> = FlexibleAdapter<IFlexible<*>>(null)
@ -103,6 +105,13 @@ class SourceFilterSheet(
// EXH --> // EXH -->
fun setSavedSearches(searches: List<EXHSavedSearch>) { fun setSavedSearches(searches: List<EXHSavedSearch>) {
recycler.post {
(recycler.findViewHolderForAdapterPosition(0) as? SavedSearchesHolder)?.setChips(getChips(searches))
savedSearchesAdapter.expand(0)
}
}
private fun getChips(searches: List<EXHSavedSearch>): List<Chip> {
save_search_btn.visibility = if (searches.size < MAX_SAVED_SEARCHES) View.VISIBLE else View.GONE save_search_btn.visibility = if (searches.size < MAX_SAVED_SEARCHES) View.VISIBLE else View.GONE
val chips: MutableList<Chip> = mutableListOf() val chips: MutableList<Chip> = mutableListOf()
@ -117,10 +126,7 @@ class SourceFilterSheet(
chips += chip chips += chip
} }
savedSearchesAdapter.recyclerView.post { return chips
(recycler.findViewHolderForAdapterPosition(0) as? SavedSearchesHolder)?.setChips(chips)
savedSearchesAdapter.expand(0)
}
} }
fun hideFilterButton() { fun hideFilterButton() {