From d7bf9b642d1483a6963b530792f341cec657cbd3 Mon Sep 17 00:00:00 2001 From: lionnel Date: Tue, 4 Feb 2025 14:59:34 +0000 Subject: [PATCH] Fix fab moving with virtual keyboard lio --- .../buzbuz/smartautoclicker/core/base/extensions/View.kt | 9 +++++---- .../scenarios/list/ScenarioListFragment.kt | 5 ++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/core/common/base/src/main/java/com/buzbuz/smartautoclicker/core/base/extensions/View.kt b/core/common/base/src/main/java/com/buzbuz/smartautoclicker/core/base/extensions/View.kt index b8a8bcbbd..711b94ff2 100644 --- a/core/common/base/src/main/java/com/buzbuz/smartautoclicker/core/base/extensions/View.kt +++ b/core/common/base/src/main/java/com/buzbuz/smartautoclicker/core/base/extensions/View.kt @@ -16,6 +16,7 @@ */ package com.buzbuz.smartautoclicker.core.base.extensions +import android.graphics.Rect import android.view.View import android.view.ViewGroup import android.view.ViewTreeObserver @@ -51,14 +52,14 @@ fun View.delayDrawUntil(timeOutMs: Long = DEFAULT_DRAW_DELAY_TIMEOUT_MS, closure ) } -fun View.applySystemBarInsets() { +fun View.applySystemBarInsets(margin: Rect) { ViewCompat.setOnApplyWindowInsetsListener(this) { view, windowInsets -> // Apply the system bar insets as a margin to the view. windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()).let { insets -> view.updateLayoutParams { - leftMargin += insets.left - bottomMargin += insets.bottom - rightMargin += insets.right + leftMargin = margin.left + insets.left + bottomMargin = margin.bottom + insets.bottom + rightMargin = margin.right + insets.right } } diff --git a/smartautoclicker/src/main/java/com/buzbuz/smartautoclicker/scenarios/list/ScenarioListFragment.kt b/smartautoclicker/src/main/java/com/buzbuz/smartautoclicker/scenarios/list/ScenarioListFragment.kt index a32e3ebbf..eaf044742 100644 --- a/smartautoclicker/src/main/java/com/buzbuz/smartautoclicker/scenarios/list/ScenarioListFragment.kt +++ b/smartautoclicker/src/main/java/com/buzbuz/smartautoclicker/scenarios/list/ScenarioListFragment.kt @@ -18,6 +18,7 @@ package com.buzbuz.smartautoclicker.scenarios.list import android.content.DialogInterface import android.content.Intent +import android.graphics.Rect import android.os.Bundle import android.util.Log import android.view.LayoutInflater @@ -106,7 +107,9 @@ class ScenarioListFragment : Fragment() { appBarLayout.statusBarForeground = MaterialShapeDrawable.createWithElevationOverlay(context) topAppBar.setOnMenuItemClickListener { onMenuItemSelected(it) } - add.applySystemBarInsets() + val fabEndMargin = resources.getDimensionPixelSize(R.dimen.margin_horizontal_default) + val fabBottomMargin = resources.getDimensionPixelSize(R.dimen.margin_vertical_default) + add.applySystemBarInsets(Rect(0, 0, fabEndMargin, fabBottomMargin)) } lifecycleScope.launch {