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

Commit 8cd70296 authored by Qinchen Gu's avatar Qinchen Gu Committed by Android (Google) Code Review
Browse files

Revert "Add DeviceEntryIconView after fingerprintProps are initialized"

This reverts commit e124cacc.

Reason for revert: DroidMonitor-triggered revert due to breakage: https://android-build.corp.google.com/test_investigate/?referrer=buganizer&regressionId=400747d5-9105-49a7-8526-f991b3b74801&testResultId=TR52829190485996370&invocationId=I18700010249956719

Bug: 326748385
Change-Id: Ia3dd145e3251acdf9532e15c4226bc6761002c83
parent e124cacc
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.deviceentry.shared.DeviceEntryUdfpsRefactor
import com.android.systemui.flags.FeatureFlagsClassic
import com.android.systemui.flags.Flags
import com.android.systemui.keyguard.ui.binder.DeviceEntryIconViewBinder
import com.android.systemui.keyguard.ui.composable.blueprint.BlueprintAlignmentLines
import com.android.systemui.keyguard.ui.view.DeviceEntryIconView
import com.android.systemui.keyguard.ui.viewmodel.DeviceEntryBackgroundViewModel
@@ -77,16 +78,15 @@ constructor(
                    if (DeviceEntryUdfpsRefactor.isEnabled) {
                        DeviceEntryIconView(context, null).apply {
                            id = R.id.device_entry_icon_view
                            // TODO: b/326624996 Bind the DeviceEntryIcon
                            //                            DeviceEntryIconViewBinder.bind(
                            //                                applicationScope,
                            //                                this,
                            //                                deviceEntryIconViewModel.get(),
                            //                                deviceEntryForegroundViewModel.get(),
                            //                                deviceEntryBackgroundViewModel.get(),
                            //                                falsingManager.get(),
                            //                                vibratorHelper.get(),
                            //                            )
                            DeviceEntryIconViewBinder.bind(
                                applicationScope,
                                this,
                                deviceEntryIconViewModel.get(),
                                deviceEntryForegroundViewModel.get(),
                                deviceEntryBackgroundViewModel.get(),
                                falsingManager.get(),
                                vibratorHelper.get(),
                            )
                        }
                    } else {
                        // keyguardBottomAreaRefactor()
+1 −23
Original line number Diff line number Diff line
@@ -51,8 +51,6 @@ import kotlinx.coroutines.withContext
 * There is never more than one instance of the FingerprintProperty at any given time.
 */
interface FingerprintPropertyRepository {
    /** Whether the fingerprint properties have been initialized yet. */
    val propertiesInitialized: StateFlow<Boolean>

    /** The id of fingerprint sensor. */
    val sensorId: Flow<Int>
@@ -107,16 +105,7 @@ constructor(
            .stateIn(
                applicationScope,
                started = SharingStarted.Eagerly,
                initialValue = UNINITIALIZED_PROPS,
            )

    override val propertiesInitialized: StateFlow<Boolean> =
        props
            .map { it != UNINITIALIZED_PROPS }
            .stateIn(
                applicationScope,
                started = SharingStarted.WhileSubscribed(),
                initialValue = props.value != UNINITIALIZED_PROPS,
                initialValue = DEFAULT_PROPS,
            )

    override val sensorId: Flow<Int> = props.map { it.sensorId }
@@ -135,17 +124,6 @@ constructor(

    companion object {
        private const val TAG = "FingerprintPropertyRepositoryImpl"
        private val UNINITIALIZED_PROPS =
            FingerprintSensorPropertiesInternal(
                -2 /* sensorId */,
                SensorProperties.STRENGTH_CONVENIENCE,
                0 /* maxEnrollmentsPerUser */,
                listOf<ComponentInfoInternal>(),
                FingerprintSensorProperties.TYPE_UNKNOWN,
                false /* halControlsIllumination */,
                true /* resetLockoutRequiresHardwareAuthToken */,
                listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT)
            )
        private val DEFAULT_PROPS =
            FingerprintSensorPropertiesInternal(
                -1 /* sensorId */,
+0 −2
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@ import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import javax.inject.Inject
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.filterNotNull
@@ -40,7 +39,6 @@ constructor(
    configurationInteractor: ConfigurationInteractor,
    displayStateInteractor: DisplayStateInteractor,
) {
    val propertiesInitialized: StateFlow<Boolean> = repository.propertiesInitialized
    val isUdfps: Flow<Boolean> = repository.sensorType.map { it.isUdfps() }

    /**
+0 −22
Original line number Diff line number Diff line
@@ -22,14 +22,11 @@ import android.content.res.ColorStateList
import android.util.StateSet
import android.view.HapticFeedbackConstants
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.constraintlayout.widget.ConstraintSet
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.repeatOnLifecycle
import com.android.systemui.common.ui.view.LongPressHandlingView
import com.android.systemui.deviceentry.shared.DeviceEntryUdfpsRefactor
import com.android.systemui.keyguard.ui.view.DeviceEntryIconView
import com.android.systemui.keyguard.ui.view.layout.sections.DefaultDeviceEntrySection
import com.android.systemui.keyguard.ui.viewmodel.DeviceEntryBackgroundViewModel
import com.android.systemui.keyguard.ui.viewmodel.DeviceEntryForegroundViewModel
import com.android.systemui.keyguard.ui.viewmodel.DeviceEntryIconViewModel
@@ -54,8 +51,6 @@ object DeviceEntryIconViewBinder {
    @JvmStatic
    fun bind(
        applicationScope: CoroutineScope,
        keyguardRootView: ConstraintLayout,
        section: DefaultDeviceEntrySection,
        view: DeviceEntryIconView,
        viewModel: DeviceEntryIconViewModel,
        fgViewModel: DeviceEntryForegroundViewModel,
@@ -81,23 +76,6 @@ object DeviceEntryIconViewBinder {
                }
            }

        keyguardRootView.repeatWhenAttached {
            repeatOnLifecycle(Lifecycle.State.STARTED) {
                launch {
                    viewModel.positionAtUdfpsLocation.collect { supportsUdfps ->
                        section.removeViews(keyguardRootView)
                        keyguardRootView.addView(view)
                        val constraintSet = ConstraintSet().apply { clone(keyguardRootView) }
                        section.applyConstraintsAfterPropertiesInitialized(
                            constraintSet,
                            supportsUdfps,
                        )
                        constraintSet.applyTo(keyguardRootView)
                    }
                }
            }
        }

        view.repeatWhenAttached {
            // Repeat on CREATED so that the view will always observe the entire
            // GONE => AOD transition (even though the view may not be visible until the middle
+11 −26
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.view.WindowManager
import androidx.annotation.VisibleForTesting
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.constraintlayout.widget.ConstraintSet
import com.android.keyguard.KeyguardUpdateMonitor
import com.android.keyguard.LockIconView
import com.android.keyguard.LockIconViewController
import com.android.systemui.Flags.keyguardBottomAreaRefactor
@@ -55,6 +56,7 @@ class DefaultDeviceEntrySection
@Inject
constructor(
    @Application private val applicationScope: CoroutineScope,
    private val keyguardUpdateMonitor: KeyguardUpdateMonitor,
    private val authController: AuthController,
    private val windowManager: WindowManager,
    private val context: Context,
@@ -67,7 +69,6 @@ constructor(
    private val falsingManager: Lazy<FalsingManager>,
    private val vibratorHelper: Lazy<VibratorHelper>,
) : KeyguardSection() {
    private var deviceEntryIconView: DeviceEntryIconView? = null
    private val deviceEntryIconViewId = R.id.device_entry_icon_view

    override fun addViews(constraintLayout: ConstraintLayout) {
@@ -79,22 +80,21 @@ constructor(
            notificationPanelView.removeView(it)
        }

        val view =
            if (DeviceEntryUdfpsRefactor.isEnabled) {
            deviceEntryIconView =
                DeviceEntryIconView(context, null).apply { id = deviceEntryIconViewId }
            } else {
                // keyguardBottomAreaRefactor()
            constraintLayout.addView(LockIconView(context, null).apply { id = R.id.lock_icon_view })
                LockIconView(context, null).apply { id = R.id.lock_icon_view }
            }
        constraintLayout.addView(view)
    }

    override fun bindData(constraintLayout: ConstraintLayout) {
        if (DeviceEntryUdfpsRefactor.isEnabled) {
            deviceEntryIconView?.let {
            constraintLayout.findViewById<DeviceEntryIconView?>(deviceEntryIconViewId)?.let {
                DeviceEntryIconViewBinder.bind(
                    applicationScope,
                    constraintLayout,
                    this,
                    it,
                    deviceEntryIconViewModel.get(),
                    deviceEntryForegroundViewModel.get(),
@@ -111,22 +111,7 @@ constructor(
    }

    override fun applyConstraints(constraintSet: ConstraintSet) {
        if (!DeviceEntryUdfpsRefactor.isEnabled) {
            applyConstraints(constraintSet, authController.isUdfpsSupported)
        }
    }

    fun applyConstraintsAfterPropertiesInitialized(
        constraintSet: ConstraintSet,
        isUdfpsSupported: Boolean
    ) {
        if (DeviceEntryUdfpsRefactor.isUnexpectedlyInLegacyMode()) {
            return
        }
        applyConstraints(constraintSet, isUdfpsSupported)
    }

    private fun applyConstraints(constraintSet: ConstraintSet, isUdfpsSupported: Boolean) {
        val isUdfpsSupported = keyguardUpdateMonitor.isUdfpsSupported
        val scaleFactor: Float = authController.scaleFactor
        val mBottomPaddingPx =
            context.resources.getDimensionPixelSize(R.dimen.lock_icon_margin_bottom)
Loading