Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7d4700f5 authored by Brad Hinegardner's avatar Brad Hinegardner Committed by Android (Google) Code Review
Browse files

Merge "Only let shortcuts respect insets due to device cutout" into main

parents ace5c353 01bcb11f
Loading
Loading
Loading
Loading
+37 −0
Original line number Diff line number Diff line
@@ -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 ->
+0 −11
Original line number Diff line number Diff line
@@ -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 {