Swap out saved search layout for chips

This commit is contained in:
Jobobby04 2020-05-25 16:29:12 -04:00
parent 6641a7480c
commit 3111daae34
2 changed files with 34 additions and 21 deletions

View File

@ -4,24 +4,23 @@ import android.app.Activity
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.util.TypedValue import android.util.TypedValue
import android.view.Gravity
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
import com.google.android.material.chip.Chip
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.flexibleadapter.items.IFlexible
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.util.system.dpToPx
import eu.kanade.tachiyomi.util.view.gone import eu.kanade.tachiyomi.util.view.gone
import eu.kanade.tachiyomi.util.view.inflate import eu.kanade.tachiyomi.util.view.inflate
import eu.kanade.tachiyomi.util.view.visible
import eu.kanade.tachiyomi.widget.SimpleNavigationView import eu.kanade.tachiyomi.widget.SimpleNavigationView
import exh.EXHSavedSearch import exh.EXHSavedSearch
import kotlinx.android.synthetic.main.source_filter_sheet.view.filter_btn import kotlinx.android.synthetic.main.source_filter_sheet.view.filter_btn
import kotlinx.android.synthetic.main.source_filter_sheet.view.reset_btn import kotlinx.android.synthetic.main.source_filter_sheet.view.reset_btn
import kotlinx.android.synthetic.main.source_filter_sheet.view.save_search_btn import kotlinx.android.synthetic.main.source_filter_sheet.view.save_search_btn
import kotlinx.android.synthetic.main.source_filter_sheet.view.saved_searches import kotlinx.android.synthetic.main.source_filter_sheet.view.saved_searches
import kotlinx.android.synthetic.main.source_filter_sheet.view.saved_searches_title
class SourceFilterSheet( class SourceFilterSheet(
activity: Activity, activity: Activity,
@ -113,21 +112,22 @@ class SourceFilterSheet(
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
if (searches.isEmpty()) {
saved_searches_title.gone()
} else {
saved_searches_title.visible()
}
searches.withIndex().sortedBy { it.value.name }.forEach { (index, search) -> searches.withIndex().sortedBy { it.value.name }.forEach { (index, search) ->
val restoreBtn = TextView(context) val chip = Chip(context).apply {
restoreBtn.text = search.name text = search.name
val params = LinearLayout.LayoutParams( setOnClickListener { onSavedSearchClicked(index) }
ViewGroup.LayoutParams.MATCH_PARENT, setOnLongClickListener {
ViewGroup.LayoutParams.WRAP_CONTENT onSavedSearchDeleteClicked(index, search.name); true
) }
params.gravity = Gravity.CENTER }
restoreBtn.layoutParams = params
restoreBtn.gravity = Gravity.CENTER saved_searches.addView(chip)
restoreBtn.setBackgroundResource(outValue.resourceId)
restoreBtn.setPadding(8.dpToPx, 8.dpToPx, 8.dpToPx, 8.dpToPx)
restoreBtn.setOnClickListener { onSavedSearchClicked(index) }
restoreBtn.setOnLongClickListener { onSavedSearchDeleteClicked(index, search.name); true }
saved_searches.addView(restoreBtn)
} }
} }

View File

@ -75,12 +75,25 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <com.google.android.material.textview.MaterialTextView
android:id="@+id/saved_searches_title"
style="@style/Theme.Widget.Chip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:visibility="gone"
android:text="@string/eh_saved_searches" />
<com.google.android.material.chip.ChipGroup
android:id="@+id/saved_searches" android:id="@+id/saved_searches"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:animateLayoutChanges="true" android:layout_marginStart="16dp"
android:orientation="vertical" /> android:layout_marginEnd="16dp"
app:chipSpacingHorizontal="4dp" />
<FrameLayout <FrameLayout
android:id="@+id/source_filter_content" android:id="@+id/source_filter_content"