diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt
index da9e29fc99..a16ee26611 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt
@@ -913,12 +913,12 @@ class LibraryController(
}
binding.categoryHopperFrame.visibleIf(!singleCategory && !preferences.hideHopper().get())
- binding.filterBottomSheet.filterBottomSheet.updateButtons(
- groupType = presenter.groupType
- )
adapter.isLongPressDragEnabled = canDrag()
binding.categoryRecycler.setCategories(presenter.categories)
- displaySheet?.setExpandText(canCollapseOrExpandCategory())
+ with(binding.filterBottomSheet.root) {
+ updateGroupTypeButton(presenter.groupType)
+ setExpandText(canCollapseOrExpandCategory())
+ }
if (shouldScrollToTop) {
binding.libraryGridRecycler.recycler.scrollToPosition(0)
shouldScrollToTop = false
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/display/LibraryCategoryView.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/display/LibraryCategoryView.kt
index 64b931d2dd..693842f869 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/display/LibraryCategoryView.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/display/LibraryCategoryView.kt
@@ -1,12 +1,8 @@
package eu.kanade.tachiyomi.ui.library.display
import android.content.Context
-import android.graphics.drawable.AnimatedVectorDrawable
import android.util.AttributeSet
-import androidx.core.view.isVisible
-import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.databinding.LibraryCategoryLayoutBinding
-import eu.kanade.tachiyomi.ui.library.filter.FilterBottomSheet
import eu.kanade.tachiyomi.util.bindToPreference
import eu.kanade.tachiyomi.util.system.toInt
import eu.kanade.tachiyomi.widget.BaseLibraryDisplayView
@@ -41,41 +37,7 @@ class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: Att
addCategoriesButton.setOnClickListener {
controller?.showCategoriesController()
}
- expandCollapseCategories.setOnClickListener {
- controller?.binding?.filterBottomSheet?.root
- ?.onGroupClicked?.invoke(FilterBottomSheet.ACTION_EXPAND_COLLAPSE_ALL)
- }
hopperLongPress.bindToPreference(preferences.hopperLongPressAction())
}
}
-
- fun setExpandText(allExpanded: Boolean?, animated: Boolean = true) {
- binding.expandCollapseCategories.isVisible = allExpanded != null
- allExpanded ?: return
- binding.expandCollapseCategories.setText(
- if (!allExpanded) {
- R.string.expand_all_categories
- } else {
- R.string.collapse_all_categories
- }
- )
- if (animated) {
- binding.expandCollapseCategories.setIconResource(
- if (!allExpanded) {
- R.drawable.anim_expand_less_to_more
- } else {
- R.drawable.anim_expand_more_to_less
- }
- )
- (binding.expandCollapseCategories.icon as? AnimatedVectorDrawable)?.start()
- } else {
- binding.expandCollapseCategories.setIconResource(
- if (!allExpanded) {
- R.drawable.ic_expand_more_24dp
- } else {
- R.drawable.ic_expand_less_24dp
- }
- )
- }
- }
}
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/display/TabbedLibraryDisplaySheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/display/TabbedLibraryDisplaySheet.kt
index 31085a9e75..37dbdcaef8 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/display/TabbedLibraryDisplaySheet.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/display/TabbedLibraryDisplaySheet.kt
@@ -37,18 +37,9 @@ open class TabbedLibraryDisplaySheet(val controller: Controller) :
controller.router.pushController(SettingsLibraryController().withFadeTransaction())
dismiss()
}
-
- if (controller is LibraryController) {
- setExpandText(controller.canCollapseOrExpandCategory(), false)
- } else {
- setExpandText(null)
- categoryView.binding.addCategoriesButton.isVisible = false
- }
+ categoryView.binding.addCategoriesButton.isVisible = controller is LibraryController
}
- fun setExpandText(allExpanded: Boolean?, animated: Boolean = true) =
- categoryView.setExpandText(allExpanded, animated)
-
override fun dismiss() {
super.dismiss()
(controller as? LibraryController)?.displaySheet = null
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/filter/FilterBottomSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/filter/FilterBottomSheet.kt
index 8169189148..ff2af0cbb8 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/filter/FilterBottomSheet.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/filter/FilterBottomSheet.kt
@@ -1,12 +1,14 @@
package eu.kanade.tachiyomi.ui.library.filter
import android.content.Context
+import android.graphics.drawable.AnimatedVectorDrawable
import android.os.Parcelable
import android.util.AttributeSet
import android.view.View
import android.widget.ImageView
import android.widget.LinearLayout
import androidx.annotation.StringRes
+import androidx.core.view.isVisible
import com.google.android.material.bottomsheet.BottomSheetBehavior
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.DatabaseHelper
@@ -129,7 +131,22 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
}
)
+ post {
+ if (binding.secondLayout.width + binding.firstLayout.width + 20.dpToPx < width) {
+ binding.secondLayout.removeView(binding.viewOptions)
+ binding.firstLayout.addView(binding.viewOptions)
+ binding.secondLayout.isVisible = false
+ } else if (binding.viewOptions.parent == binding.firstLayout) {
+ binding.firstLayout.removeView(binding.viewOptions)
+ binding.secondLayout.addView(binding.viewOptions)
+ binding.secondLayout.isVisible = true
+ }
+ }
+
sheetBehavior?.hide()
+ binding.expandCategories.setOnClickListener {
+ onGroupClicked(ACTION_EXPAND_COLLAPSE_ALL)
+ }
binding.groupBy.setOnClickListener {
onGroupClicked(ACTION_GROUP_BY)
}
@@ -157,6 +174,8 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
createTags()
clearButton.setOnClickListener { clearFilters() }
+ setExpandText(controller.canCollapseOrExpandCategory(), false)
+
clearButton.compatToolTipText = context.getString(R.string.clear_filters)
preferences.filterOrder().asFlow()
.drop(1)
@@ -205,6 +224,36 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
}
}
+ fun setExpandText(allExpanded: Boolean?, animated: Boolean = true) {
+ binding.expandCategories.isVisible = allExpanded != null
+ allExpanded ?: return
+ binding.expandCategories.setText(
+ if (!allExpanded) {
+ R.string.expand_all_categories
+ } else {
+ R.string.collapse_all_categories
+ }
+ )
+ if (animated) {
+ binding.expandCategories.setIconResource(
+ if (!allExpanded) {
+ R.drawable.anim_expand_less_to_more
+ } else {
+ R.drawable.anim_expand_more_to_less
+ }
+ )
+ (binding.expandCategories.icon as? AnimatedVectorDrawable)?.start()
+ } else {
+ binding.expandCategories.setIconResource(
+ if (!allExpanded) {
+ R.drawable.ic_expand_more_24dp
+ } else {
+ R.drawable.ic_expand_less_24dp
+ }
+ )
+ }
+ }
+
fun hasActiveFilters() = filterItems.any { it.isActivated }
private fun hasActiveFiltersFromPref(): Boolean {
@@ -400,7 +449,7 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
}
}
- fun updateButtons(groupType: Int) {
+ fun updateGroupTypeButton(groupType: Int) {
binding.groupBy.setIconResource(LibraryGroup.groupTypeDrawableRes(groupType))
}
diff --git a/app/src/main/res/layout/filter_bottom_sheet.xml b/app/src/main/res/layout/filter_bottom_sheet.xml
index 1461a8ed22..fe03e23054 100644
--- a/app/src/main/res/layout/filter_bottom_sheet.xml
+++ b/app/src/main/res/layout/filter_bottom_sheet.xml
@@ -93,6 +93,24 @@
app:icon="@drawable/ic_label_outline_24dp"
app:iconTint="?android:attr/textColorPrimary" />
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/library_category_layout.xml b/app/src/main/res/layout/library_category_layout.xml
index 4aea5a1a81..a569438edb 100644
--- a/app/src/main/res/layout/library_category_layout.xml
+++ b/app/src/main/res/layout/library_category_layout.xml
@@ -11,18 +11,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-