Loading packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/LockSection.kt +10 −10 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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() Loading packages/SystemUI/src/com/android/systemui/biometrics/data/repository/FingerprintPropertyRepository.kt +1 −23 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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 } Loading @@ -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 */, Loading packages/SystemUI/src/com/android/systemui/biometrics/domain/interactor/FingerprintPropertyInteractor.kt +0 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -40,7 +39,6 @@ constructor( configurationInteractor: ConfigurationInteractor, displayStateInteractor: DisplayStateInteractor, ) { val propertiesInitialized: StateFlow<Boolean> = repository.propertiesInitialized val isUdfps: Flow<Boolean> = repository.sensorType.map { it.isUdfps() } /** Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/DeviceEntryIconViewBinder.kt +0 −22 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -54,8 +51,6 @@ object DeviceEntryIconViewBinder { @JvmStatic fun bind( applicationScope: CoroutineScope, keyguardRootView: ConstraintLayout, section: DefaultDeviceEntrySection, view: DeviceEntryIconView, viewModel: DeviceEntryIconViewModel, fgViewModel: DeviceEntryForegroundViewModel, Loading @@ -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 Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySection.kt +11 −26 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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, Loading @@ -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) { Loading @@ -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(), Loading @@ -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 Loading
packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/LockSection.kt +10 −10 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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() Loading
packages/SystemUI/src/com/android/systemui/biometrics/data/repository/FingerprintPropertyRepository.kt +1 −23 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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 } Loading @@ -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 */, Loading
packages/SystemUI/src/com/android/systemui/biometrics/domain/interactor/FingerprintPropertyInteractor.kt +0 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -40,7 +39,6 @@ constructor( configurationInteractor: ConfigurationInteractor, displayStateInteractor: DisplayStateInteractor, ) { val propertiesInitialized: StateFlow<Boolean> = repository.propertiesInitialized val isUdfps: Flow<Boolean> = repository.sensorType.map { it.isUdfps() } /** Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/DeviceEntryIconViewBinder.kt +0 −22 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -54,8 +51,6 @@ object DeviceEntryIconViewBinder { @JvmStatic fun bind( applicationScope: CoroutineScope, keyguardRootView: ConstraintLayout, section: DefaultDeviceEntrySection, view: DeviceEntryIconView, viewModel: DeviceEntryIconViewModel, fgViewModel: DeviceEntryForegroundViewModel, Loading @@ -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 Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySection.kt +11 −26 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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, Loading @@ -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) { Loading @@ -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(), Loading @@ -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