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

Commit dc55b208 authored by Matt Pietal's avatar Matt Pietal
Browse files

Don't override alpha for indication area

This was causing issues with visibility and fading. Indication
area should not apply its own logic and just use the default
from the keyguard_root_view model parent.

Also, don't send 0 values on dismiss to swipe, as it causes
a race condition on unlock.

Fixes: 325601893
Test: manual (its a binder change) so exercise top CUJs
Flag: ACONFIG com.android.systemui.migrate_clocks_to_blueprint
DEVELOPMENT
Flag: ACONFIG com.android.systemui.keyguard_bottom_area_refactor
TEAMFOOD

Change-Id: Ifab115b7792d2a6dfa5344e4352d713a680002cf
parent af984c90
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ import com.android.systemui.animation.view.LaunchableImageView
import com.android.systemui.keyguard.ui.binder.KeyguardIndicationAreaBinder
import com.android.systemui.keyguard.ui.binder.KeyguardQuickAffordanceViewBinder
import com.android.systemui.keyguard.ui.view.KeyguardIndicationArea
import com.android.systemui.keyguard.ui.viewmodel.AodAlphaViewModel
import com.android.systemui.keyguard.ui.viewmodel.KeyguardIndicationAreaViewModel
import com.android.systemui.keyguard.ui.viewmodel.KeyguardQuickAffordanceViewModel
import com.android.systemui.keyguard.ui.viewmodel.KeyguardQuickAffordancesCombinedViewModel
@@ -55,7 +54,6 @@ constructor(
    private val vibratorHelper: VibratorHelper,
    private val indicationController: KeyguardIndicationController,
    private val indicationAreaViewModel: KeyguardIndicationAreaViewModel,
    private val alphaViewModel: AodAlphaViewModel,
) {
    /**
     * Renders a single lockscreen shortcut.
@@ -104,7 +102,6 @@ constructor(
            content {
                IndicationArea(
                    indicationAreaViewModel = indicationAreaViewModel,
                    alphaViewModel = alphaViewModel,
                    indicationController = indicationController,
                )
            }
@@ -183,7 +180,6 @@ constructor(
    @Composable
    private fun IndicationArea(
        indicationAreaViewModel: KeyguardIndicationAreaViewModel,
        alphaViewModel: AodAlphaViewModel,
        indicationController: KeyguardIndicationController,
        modifier: Modifier = Modifier,
    ) {
@@ -196,7 +192,6 @@ constructor(
                    KeyguardIndicationAreaBinder.bind(
                        view = view,
                        viewModel = indicationAreaViewModel,
                        aodAlphaViewModel = alphaViewModel,
                        indicationController = indicationController,
                    )
                )
+0 −1
Original line number Diff line number Diff line
@@ -170,7 +170,6 @@ constructor(
            KeyguardIndicationAreaBinder.bind(
                notificationShadeWindowView.requireViewById(R.id.keyguard_indication_area),
                keyguardIndicationAreaViewModel,
                aodAlphaViewModel,
                indicationController,
            )
    }
+5 −26
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ import android.widget.TextView
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.repeatOnLifecycle
import com.android.systemui.Flags.keyguardBottomAreaRefactor
import com.android.systemui.keyguard.ui.viewmodel.AodAlphaViewModel
import com.android.systemui.Flags.migrateClocksToBlueprint
import com.android.systemui.keyguard.ui.viewmodel.KeyguardIndicationAreaViewModel
import com.android.systemui.lifecycle.repeatWhenAttached
import com.android.systemui.res.R
@@ -51,7 +51,6 @@ object KeyguardIndicationAreaBinder {
    fun bind(
        view: ViewGroup,
        viewModel: KeyguardIndicationAreaViewModel,
        aodAlphaViewModel: AodAlphaViewModel,
        indicationController: KeyguardIndicationController,
    ): DisposableHandle {
        indicationController.setIndicationArea(view)
@@ -68,30 +67,10 @@ object KeyguardIndicationAreaBinder {
            view.repeatWhenAttached {
                repeatOnLifecycle(Lifecycle.State.STARTED) {
                    launch {
                        if (keyguardBottomAreaRefactor()) {
                            aodAlphaViewModel.alpha.collect { alpha ->
                                view.apply {
                                    this.importantForAccessibility =
                                        if (alpha == 0f) {
                                            View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS
                                        } else {
                                            View.IMPORTANT_FOR_ACCESSIBILITY_AUTO
                                        }
                                    this.alpha = alpha
                                }
                            }
                        } else {
                            viewModel.alpha.collect { alpha ->
                                view.apply {
                                    this.importantForAccessibility =
                                        if (alpha == 0f) {
                                            View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS
                                        } else {
                                            View.IMPORTANT_FOR_ACCESSIBILITY_AUTO
                                        }
                                    this.alpha = alpha
                                }
                            }
                        // Do not independently apply alpha, as [KeyguardRootViewModel] should work
                        // for this and all its children
                        if (!(migrateClocksToBlueprint() || keyguardBottomAreaRefactor())) {
                            viewModel.alpha.collect { alpha -> view.alpha = alpha }
                        }
                    }

+9 −0
Original line number Diff line number Diff line
@@ -50,6 +50,15 @@ class KeyguardIndicationArea(
        )
    }

    override fun setAlpha(alpha: Float) {
        super.setAlpha(alpha)

        if (alpha == 0f) {
            importantForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS
        } else {
            importantForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_AUTO
        }
    }
    private fun indicationTopRow(): KeyguardIndicationTextView {
        return KeyguardIndicationTextView(context, attrs).apply {
            id = R.id.keyguard_indication_text
+0 −3
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@ import com.android.systemui.Flags.keyguardBottomAreaRefactor
import com.android.systemui.keyguard.shared.model.KeyguardSection
import com.android.systemui.keyguard.ui.binder.KeyguardIndicationAreaBinder
import com.android.systemui.keyguard.ui.view.KeyguardIndicationArea
import com.android.systemui.keyguard.ui.viewmodel.AodAlphaViewModel
import com.android.systemui.keyguard.ui.viewmodel.KeyguardIndicationAreaViewModel
import com.android.systemui.res.R
import com.android.systemui.statusbar.KeyguardIndicationController
@@ -37,7 +36,6 @@ class DefaultIndicationAreaSection
constructor(
    private val context: Context,
    private val keyguardIndicationAreaViewModel: KeyguardIndicationAreaViewModel,
    private val aodAlphaViewModel: AodAlphaViewModel,
    private val indicationController: KeyguardIndicationController,
) : KeyguardSection() {
    private val indicationAreaViewId = R.id.keyguard_indication_area
@@ -56,7 +54,6 @@ constructor(
                KeyguardIndicationAreaBinder.bind(
                    constraintLayout.requireViewById(R.id.keyguard_indication_area),
                    keyguardIndicationAreaViewModel,
                    aodAlphaViewModel,
                    indicationController,
                )
        }
Loading