Move reorder filters to display tab of library display options

Also renamed the last tab back to categories
This commit is contained in:
Jays2Kings 2021-04-18 01:38:10 -04:00
parent cf18b148cc
commit 4b516e2a77
5 changed files with 49 additions and 46 deletions

View File

@ -4,16 +4,9 @@ import android.content.Context
import android.graphics.drawable.AnimatedVectorDrawable
import android.util.AttributeSet
import androidx.core.view.isVisible
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.afollestad.materialdialogs.MaterialDialog
import com.afollestad.materialdialogs.customview.customView
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.databinding.LibraryCategoryLayoutBinding
import eu.kanade.tachiyomi.ui.library.filter.FilterBottomSheet
import eu.kanade.tachiyomi.ui.library.filter.FilterBottomSheet.Filters.Companion.DEFAULT_ORDER
import eu.kanade.tachiyomi.ui.library.filter.ManageFilterItem
import eu.kanade.tachiyomi.util.bindToPreference
import eu.kanade.tachiyomi.util.system.toInt
import eu.kanade.tachiyomi.widget.BaseLibraryDisplayView
@ -53,32 +46,6 @@ class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: Att
?.onGroupClicked?.invoke(FilterBottomSheet.ACTION_EXPAND_COLLAPSE_ALL)
}
hopperLongPress.bindToPreference(preferences.hopperLongPressAction())
reorderFiltersButton.setOnClickListener {
val recycler = RecyclerView(context)
var filterOrder = preferences.filterOrder().get()
if (filterOrder.count() != 6) {
filterOrder = DEFAULT_ORDER
}
val adapter = FlexibleAdapter(
filterOrder.toCharArray().map(::ManageFilterItem),
this,
true
)
recycler.layoutManager = LinearLayoutManager(context)
recycler.adapter = adapter
adapter.isHandleDragEnabled = true
adapter.isLongPressDragEnabled = true
MaterialDialog(context).title(R.string.reorder_filters)
.customView(view = recycler, scrollable = false)
.negativeButton(android.R.string.cancel)
.positiveButton(R.string.reorder) {
val order = adapter.currentItems.map { it.char }.joinToString("")
preferences.filterOrder().set(order)
recycler.adapter = null
}
.show()
}
}
}

View File

@ -7,8 +7,15 @@ import android.view.ViewTreeObserver
import android.widget.SeekBar
import androidx.core.animation.addListener
import androidx.core.view.isVisible
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.afollestad.materialdialogs.MaterialDialog
import com.afollestad.materialdialogs.customview.customView
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.databinding.LibraryDisplayLayoutBinding
import eu.kanade.tachiyomi.ui.library.filter.FilterBottomSheet
import eu.kanade.tachiyomi.ui.library.filter.ManageFilterItem
import eu.kanade.tachiyomi.util.bindToPreference
import eu.kanade.tachiyomi.util.lang.withSubtitle
import eu.kanade.tachiyomi.util.system.dpToPx
@ -28,6 +35,33 @@ class LibraryDisplayView @JvmOverloads constructor(context: Context, attrs: Attr
binding.resetGridSize.setOnClickListener {
binding.gridSeekbar.progress = 3
}
binding.reorderFiltersButton.setOnClickListener {
val recycler = RecyclerView(context)
var filterOrder = preferences.filterOrder().get()
if (filterOrder.count() != 6) {
filterOrder = FilterBottomSheet.Filters.DEFAULT_ORDER
}
val adapter = FlexibleAdapter(
filterOrder.toCharArray().map(::ManageFilterItem),
this,
true
)
recycler.layoutManager = LinearLayoutManager(context)
recycler.adapter = adapter
adapter.isHandleDragEnabled = true
adapter.isLongPressDragEnabled = true
MaterialDialog(context).title(R.string.reorder_filters)
.customView(view = recycler, scrollable = false)
.negativeButton(android.R.string.cancel)
.positiveButton(R.string.reorder) {
val order = adapter.currentItems.map { it.char }.joinToString("")
preferences.filterOrder().set(order)
recycler.adapter = null
}
.show()
}
binding.root.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
override fun onGlobalLayout() {
if (binding.root.width > 0) {

View File

@ -73,6 +73,6 @@ open class TabbedLibraryDisplaySheet(val controller: Controller) :
override fun getTabTitles(): List<Int> = listOf(
R.string.display,
R.string.badges,
R.string.more
R.string.categories
)
}

View File

@ -11,22 +11,12 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.button.MaterialButton
android:id="@+id/reorder_filters_button"
android:layout_marginStart="8dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:icon="@drawable/ic_swap_vert_24dp"
style="@style/Theme.Widget.Button.TextButton"
android:textColor="?android:attr/textColorPrimary"
app:iconTint="?android:attr/textColorPrimary"
android:text="@string/reorder_filters" />
<com.google.android.material.button.MaterialButton
android:id="@+id/expand_collapse_categories"
style="@style/Theme.Widget.Button.TextButton"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="textStart"
app:icon="@drawable/ic_expand_more_24dp"
android:layout_marginStart="8dp"
android:textColor="?android:attr/textColorPrimary"

View File

@ -98,6 +98,18 @@
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:text="@string/uniform_grid_covers" />
<com.google.android.material.button.MaterialButton
android:id="@+id/reorder_filters_button"
android:layout_marginStart="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="textStart"
app:icon="@drawable/ic_swap_vert_24dp"
style="@style/Theme.Widget.Button.TextButton"
android:textColor="?android:attr/textColorPrimary"
app:iconTint="?android:attr/textColorPrimary"
android:text="@string/reorder_filters" />
</LinearLayout>
<include