diff options
2 files changed, 37 insertions, 11 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBottomAreaViewBinder.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBottomAreaViewBinder.kt index 3630b4038357..397cbe5b3e5d 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBottomAreaViewBinder.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBottomAreaViewBinder.kt @@ -22,11 +22,16 @@ import android.graphics.drawable.Animatable2 import android.util.Size import android.view.View import android.view.ViewGroup +import android.view.ViewGroup.MarginLayoutParams +import android.view.WindowInsets import android.widget.ImageView import androidx.core.animation.CycleInterpolator import androidx.core.animation.ObjectAnimator import androidx.core.view.isInvisible import androidx.core.view.isVisible +import androidx.core.view.marginLeft +import androidx.core.view.marginRight +import androidx.core.view.marginTop import androidx.core.view.updateLayoutParams import androidx.lifecycle.Lifecycle import androidx.lifecycle.repeatOnLifecycle @@ -114,6 +119,38 @@ object KeyguardBottomAreaViewBinder { val settingsMenu: LaunchableLinearLayout = view.requireViewById(R.id.keyguard_settings_button) + startButton.setOnApplyWindowInsetsListener { inView, windowInsets -> + val bottomInset = windowInsets.displayCutout?.safeInsetBottom ?: 0 + val marginBottom = + inView.resources.getDimension(R.dimen.keyguard_affordance_vertical_offset).toInt() + inView.layoutParams = + (inView.layoutParams as MarginLayoutParams).apply { + setMargins( + inView.marginLeft, + inView.marginTop, + inView.marginRight, + marginBottom + bottomInset + ) + } + WindowInsets.CONSUMED + } + + endButton.setOnApplyWindowInsetsListener { inView, windowInsets -> + val bottomInset = windowInsets.displayCutout?.safeInsetBottom ?: 0 + val marginBottom = + inView.resources.getDimension(R.dimen.keyguard_affordance_vertical_offset).toInt() + inView.layoutParams = + (inView.layoutParams as MarginLayoutParams).apply { + setMargins( + inView.marginLeft, + inView.marginTop, + inView.marginRight, + marginBottom + bottomInset + ) + } + WindowInsets.CONSUMED + } + view.clipChildren = false view.clipToPadding = false view.setOnTouchListener { _, event -> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.kt index 25e634a03ef7..82b10bc11cc1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.kt @@ -20,7 +20,6 @@ import android.content.res.Configuration import android.util.AttributeSet import android.view.View import android.view.ViewGroup -import android.view.WindowInsets import android.widget.FrameLayout import androidx.annotation.StringRes import com.android.keyguard.LockIconViewController @@ -148,16 +147,6 @@ constructor( return false } - override fun onApplyWindowInsets(insets: WindowInsets): WindowInsets { - val bottom = insets.displayCutout?.safeInsetBottom ?: 0 - if (isPaddingRelative) { - setPaddingRelative(paddingStart, paddingTop, paddingEnd, bottom) - } else { - setPadding(paddingLeft, paddingTop, paddingRight, bottom) - } - return insets - } - override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) { super.onLayout(changed, left, top, right, bottom) findViewById<View>(R.id.ambient_indication_container)?.let { |