aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorxbzk <xbzk@noreply.localhost>2025-06-08 20:27:00 +0000
committercrueter <crueter@noreply.localhost>2025-06-08 20:27:00 +0000
commit5c1fc12d88f6b317c9a38029fb93d1024d3e2c45 (patch)
tree5ca18be49e831088f27231a7e59d4eaf022557d0 /src
parent321bb5a17f17739f554078261c7f86e58e2f89bc (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.kt24
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)