From e121f46b61830198d2a8c787cb6067549e2e472f Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Tue, 8 Jul 2025 21:17:23 -0500 Subject: [PATCH] Confetti: Fix position in freeform and landscape modes --- .../activities/habits/list/views/HabitCardView.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt index eea1244eb..2edf17225 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt @@ -238,17 +238,18 @@ class HabitCardView( private fun getAbsoluteButtonLocation(timestamp: Timestamp): PointF { val containerLocation = IntArray(2) - this.getLocationOnScreen(containerLocation) + this.getLocationInWindow(containerLocation) val relButtonLocation = getRelativeButtonLocation(timestamp) val windowInsets = rootWindowInsets - val statusBarHeight = if (SDK_INT <= Build.VERSION_CODES.VANILLA_ICE_CREAM) { + val xInset = windowInsets?.displayCutout?.safeInsetLeft ?: 0 + val yInset = if (SDK_INT <= Build.VERSION_CODES.VANILLA_ICE_CREAM) { windowInsets?.systemWindowInsetTop ?: 0 } else { 0 } return PointF( - containerLocation[0].toFloat() + relButtonLocation.x, - containerLocation[1].toFloat() + relButtonLocation.y - statusBarHeight + containerLocation[0].toFloat() + relButtonLocation.x - xInset, + containerLocation[1].toFloat() + relButtonLocation.y - yInset ) }