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"> - -