From ecda463183359f7ca2b2549c61e6e336538b8d42 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Sun, 21 Jun 2020 16:01:01 -0400 Subject: [PATCH] Fix saved searches for android 6(and possibly others) --- .../source/browse/BrowseSourceController.kt | 6 ++--- .../browse/source/browse/SavedSearchesItem.kt | 7 ++++-- .../browse/source/browse/SourceFilterSheet.kt | 22 ++++++++++++------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt index 720a232c4..49cc715ac 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt @@ -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) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SavedSearchesItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SavedSearchesItem.kt index 65cf7f251..44e1fb051 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SavedSearchesItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SavedSearchesItem.kt @@ -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) : AbstractFlexibleItem() { override fun getLayoutRes(): Int { @@ -31,7 +32,9 @@ class SavedSearchesItem : holder: SavedSearchesHolder, position: Int, payloads: MutableList? - ) {} + ) { + holder.setChips(chips) + } override fun equals(other: Any?): Boolean { return (this === other) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceFilterSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceFilterSheet.kt index 3fe4167e2..ce97cc342 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceFilterSheet.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceFilterSheet.kt @@ -21,6 +21,9 @@ import kotlinx.android.synthetic.main.source_filter_sheet.view.save_search_btn class SourceFilterSheet( activity: Activity, + // SY --> + searches: List = 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 = emptyList()/* SY <-- */) : SimpleNavigationView(context, attrs) { var onFilterClicked = {} @@ -78,8 +81,7 @@ class SourceFilterSheet( var onSavedSearchDeleteClicked: (Int, String) -> Unit = { _, _ -> } - var savedSearchesItem = SavedSearchesItem() - var savedSearchesAdapter: FlexibleAdapter = FlexibleAdapter(listOf(savedSearchesItem)) + var savedSearchesAdapter: FlexibleAdapter = FlexibleAdapter(listOf(SavedSearchesItem(getChips(searches)))) // SY <-- val adapter: FlexibleAdapter> = FlexibleAdapter>(null) @@ -103,6 +105,13 @@ class SourceFilterSheet( // EXH --> fun setSavedSearches(searches: List) { + recycler.post { + (recycler.findViewHolderForAdapterPosition(0) as? SavedSearchesHolder)?.setChips(getChips(searches)) + savedSearchesAdapter.expand(0) + } + } + + private fun getChips(searches: List): List { save_search_btn.visibility = if (searches.size < MAX_SAVED_SEARCHES) View.VISIBLE else View.GONE val chips: MutableList = 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() {