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

View File

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

View File

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