diff options
| author | xbzk <xbzk@noreply.localhost> | 2025-06-08 20:27:00 +0000 |
|---|---|---|
| committer | crueter <crueter@noreply.localhost> | 2025-06-08 20:27:00 +0000 |
| commit | 5c1fc12d88f6b317c9a38029fb93d1024d3e2c45 (patch) | |
| tree | 5ca18be49e831088f27231a7e59d4eaf022557d0 /src | |
| parent | 321bb5a17f17739f554078261c7f86e58e2f89bc (diff) | |
fix topbar accumulative insets margin (#163)
This is incremental to pr #154 (and a replacement for pr #161)
It fixes top (portrait) and sides (landscape) margins accumulating upon enter/exit search bar.
Co-authored-by: Allison Cunha <allisonbzk@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/163
Co-authored-by: xbzk <xbzk@noreply.localhost>
Co-committed-by: xbzk <xbzk@noreply.localhost>
Diffstat (limited to 'src')
| -rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt index 893aa5f41a..d6f346b3f8 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt @@ -52,6 +52,11 @@ class GamesFragment : Fragment() { private var _binding: FragmentGamesBinding? = null private val binding get() = _binding!! + private var originalHeaderTopMargin: Int? = null + private var originalHeaderBottomMargin: Int? = null + private var originalHeaderRightMargin: Int? = null + private var originalHeaderLeftMargin: Int? = null + companion object { private const val SEARCH_TEXT = "SearchText" private const val PREF_VIEW_TYPE = "GamesViewType" @@ -455,6 +460,8 @@ class GamesFragment : Fragment() { val leftInsets = barInsets.left + cutoutInsets.left val rightInsets = barInsets.right + cutoutInsets.right val topInsets = barInsets.top + cutoutInsets.top + val bottomInsets = barInsets.bottom + cutoutInsets.bottom + val mlpSwipe = binding.swipeRefresh.layoutParams as ViewGroup.MarginLayoutParams if (view.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR) { mlpSwipe.leftMargin = leftInsets @@ -466,9 +473,20 @@ class GamesFragment : Fragment() { binding.swipeRefresh.layoutParams = mlpSwipe val mlpHeader = binding.header.layoutParams as ViewGroup.MarginLayoutParams - mlpHeader.leftMargin += leftInsets - mlpHeader.rightMargin += rightInsets - mlpHeader.topMargin += if (!isLandscape) topInsets else 0 + + // Store original margins only once + if (originalHeaderTopMargin == null) { + originalHeaderTopMargin = mlpHeader.topMargin + originalHeaderBottomMargin = mlpHeader.bottomMargin + originalHeaderRightMargin = mlpHeader.rightMargin + originalHeaderLeftMargin = mlpHeader.leftMargin + } + + // Always set margin as original + insets + mlpHeader.leftMargin = (originalHeaderLeftMargin ?: 0) + leftInsets + mlpHeader.rightMargin = (originalHeaderRightMargin ?: 0) + rightInsets + mlpHeader.topMargin = (originalHeaderTopMargin ?: 0) + if (!isLandscape) topInsets else 0 + mlpHeader.bottomMargin = (originalHeaderBottomMargin ?: 0) + if (!isLandscape) bottomInsets else 0 binding.header.layoutParams = mlpHeader binding.noticeText.updatePadding(bottom = spacingNavigation) |
