From b62467964efe4b10f8f8b41bcc2430205923e7ca Mon Sep 17 00:00:00 2001 From: Koitharu Date: Sun, 26 Oct 2025 17:03:37 +0200 Subject: [PATCH] Fix filters on tablet --- .../filter/ui/sheet/FilterSheetFragment.kt | 20 +++++++++++++++++-- app/src/main/res/layout/sheet_filter.xml | 1 + 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/filter/ui/sheet/FilterSheetFragment.kt b/app/src/main/kotlin/org/koitharu/kotatsu/filter/ui/sheet/FilterSheetFragment.kt index 2b6711486..8792bc89f 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/filter/ui/sheet/FilterSheetFragment.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/filter/ui/sheet/FilterSheetFragment.kt @@ -2,16 +2,19 @@ package org.koitharu.kotatsu.filter.ui.sheet import android.os.Bundle import android.text.InputFilter +import android.view.Gravity import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.inputmethod.EditorInfo import android.widget.AdapterView import android.widget.ArrayAdapter +import android.widget.LinearLayout import android.widget.Toast import androidx.appcompat.widget.PopupMenu import androidx.core.view.WindowInsetsCompat import androidx.core.view.isGone +import androidx.core.view.isVisible import androidx.core.view.updateLayoutParams import androidx.core.view.updatePadding import com.google.android.material.chip.Chip @@ -69,8 +72,7 @@ class FilterSheetFragment : BaseAdaptiveSheet(), override fun onViewBindingCreated(binding: SheetFilterBinding, savedInstanceState: Bundle?) { super.onViewBindingCreated(binding, savedInstanceState) if (dialog == null) { - binding.layoutBody.updatePadding(top = binding.layoutBody.paddingBottom) - binding.scrollView.scrollIndicators = 0 + binding.adjustForEmbeddedLayout() } val filter = FilterCoordinator.require(this) filter.sortOrder.observe(viewLifecycleOwner, this::onSortOrderChanged) @@ -127,6 +129,20 @@ class FilterSheetFragment : BaseAdaptiveSheet(), binding.buttonDone.setOnClickListener(this) } + private fun SheetFilterBinding.adjustForEmbeddedLayout() { + layoutBody.updatePadding(top = layoutBody.paddingBottom) + scrollView.scrollIndicators = 0 + buttonDone.isVisible = false + this.root.updateLayoutParams { + height = ViewGroup.LayoutParams.MATCH_PARENT + } + buttonSave.updateLayoutParams { + weight = 0f + width = LinearLayout.LayoutParams.WRAP_CONTENT + gravity = Gravity.END or Gravity.CENTER_VERTICAL + } + } + override fun onApplyWindowInsets(v: View, insets: WindowInsetsCompat): WindowInsetsCompat { val typeMask = WindowInsetsCompat.Type.systemBars() viewBinding?.layoutBottom?.updateLayoutParams { diff --git a/app/src/main/res/layout/sheet_filter.xml b/app/src/main/res/layout/sheet_filter.xml index 32a5aff25..750ea967b 100644 --- a/app/src/main/res/layout/sheet_filter.xml +++ b/app/src/main/res/layout/sheet_filter.xml @@ -19,6 +19,7 @@ android:layout_height="0dp" android:layout_weight="1" android:clipToPadding="false" + android:fillViewport="true" android:scrollIndicators="top|bottom" tools:ignore="UnusedAttribute">