diff options
| author | 2023-07-10 18:51:04 +0000 | |
|---|---|---|
| committer | 2023-07-10 18:51:04 +0000 | |
| commit | 5f09337381f766437619ed459bdeb8e07a03f190 (patch) | |
| tree | a05dcd03c2a3d889b7b5bb591ff9a917454650d9 | |
| parent | a022cfeca146b36dd8616f2a36cb5dcfb292c886 (diff) | |
| parent | aacbc6528cb9cd5a14854d3820ef9e03153e0afe (diff) | |
Merge "Remove and cleanup flag for Custom lockscreen shortcuts" into udc-qpr-dev
13 files changed, 46 insertions, 279 deletions
diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp index 73fb0f03052b..4633a659fcb7 100644 --- a/packages/SystemUI/Android.bp +++ b/packages/SystemUI/Android.bp @@ -272,7 +272,6 @@ filegroup { "tests/src/com/android/systemui/dock/DockManagerFake.java", "tests/src/com/android/systemui/dump/LogBufferHelper.kt", "tests/src/com/android/systemui/statusbar/phone/FakeKeyguardStateController.java", - "tests/src/com/android/systemui/keyguard/domain/quickaffordance/FakeKeyguardQuickAffordanceRegistry.kt", /* Biometric converted tests */ "tests/src/com/android/systemui/biometrics/BiometricTestExtensions.kt", diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt index f892a9772226..5d5fb55fc048 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt @@ -169,16 +169,6 @@ object Flags { @JvmField val DOZING_MIGRATION_1 = unreleasedFlag(213, "dozing_migration_1") /** - * Whether to enable the code powering customizable lock screen quick affordances. - * - * This flag enables any new prebuilt quick affordances as well. - */ - // TODO(b/255618149): Tracking Bug - @JvmField - val CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES = - releasedFlag(216, "customizable_lock_screen_quick_affordances") - - /** * Migrates control of the LightRevealScrim's reveal effect and amount from legacy code to the * new KeyguardTransitionRepository. */ diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java b/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java index 61bacbda98a5..29a2d12ca972 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java @@ -50,7 +50,6 @@ import com.android.systemui.keyguard.data.quickaffordance.KeyguardDataQuickAffor import com.android.systemui.keyguard.data.repository.KeyguardFaceAuthModule; import com.android.systemui.keyguard.data.repository.KeyguardRepositoryModule; import com.android.systemui.keyguard.domain.interactor.StartKeyguardTransitionModule; -import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceModule; import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancesMetricsLogger; import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancesMetricsLoggerImpl; import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel; @@ -91,7 +90,6 @@ import kotlinx.coroutines.CoroutineDispatcher; includes = { FalsingModule.class, KeyguardDataQuickAffordanceModule.class, - KeyguardQuickAffordanceModule.class, KeyguardRepositoryModule.class, KeyguardFaceAuthModule.class, StartKeyguardTransitionModule.class, diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/quickaffordance/MuteQuickAffordanceCoreStartable.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/quickaffordance/MuteQuickAffordanceCoreStartable.kt index cd0805e663e4..7dbe945c1c6f 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/data/quickaffordance/MuteQuickAffordanceCoreStartable.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/quickaffordance/MuteQuickAffordanceCoreStartable.kt @@ -24,8 +24,6 @@ import com.android.systemui.CoreStartable import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.Background -import com.android.systemui.flags.FeatureFlags -import com.android.systemui.flags.Flags import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository import com.android.systemui.settings.UserFileManager import com.android.systemui.settings.UserTracker @@ -42,7 +40,6 @@ import javax.inject.Inject */ @SysUISingleton class MuteQuickAffordanceCoreStartable @Inject constructor( - private val featureFlags: FeatureFlags, private val userTracker: UserTracker, private val ringerModeTracker: RingerModeTracker, private val userFileManager: UserFileManager, @@ -54,8 +51,6 @@ class MuteQuickAffordanceCoreStartable @Inject constructor( private val observer = Observer(this::updateLastNonSilentRingerMode) override fun start() { - if (!featureFlags.isEnabled(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES)) return - // only listen to ringerModeInternal changes when Mute is one of the selected affordances keyguardQuickAffordanceRepository .selections diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt index f692a390c847..320b2a4e4561 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt @@ -38,7 +38,6 @@ import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanc import com.android.systemui.keyguard.data.repository.BiometricSettingsRepository import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordanceModel -import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceRegistry import com.android.systemui.keyguard.shared.model.KeyguardPickerFlag import com.android.systemui.keyguard.shared.model.KeyguardQuickAffordancePickerRepresentation import com.android.systemui.keyguard.shared.model.KeyguardSlotPickerRepresentation @@ -68,7 +67,6 @@ class KeyguardQuickAffordanceInteractor @Inject constructor( private val keyguardInteractor: KeyguardInteractor, - private val registry: KeyguardQuickAffordanceRegistry<out KeyguardQuickAffordanceConfig>, private val lockPatternUtils: LockPatternUtils, private val keyguardStateController: KeyguardStateController, private val userTracker: UserTracker, @@ -83,20 +81,13 @@ constructor( @Background private val backgroundDispatcher: CoroutineDispatcher, @Application private val appContext: Context, ) { - private val isUsingRepository: Boolean - get() = featureFlags.isEnabled(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES) /** * Whether the UI should use the long press gesture to activate quick affordances. * * If `false`, the UI goes back to using single taps. */ - fun useLongPress(): Flow<Boolean> = - if (featureFlags.isEnabled(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES)) { - dockManager.retrieveIsDocked().map { !it } - } else { - flowOf(false) - } + fun useLongPress(): Flow<Boolean> = dockManager.retrieveIsDocked().map { !it } /** Returns an observable for the quick affordance at the given position. */ suspend fun quickAffordance( @@ -147,14 +138,9 @@ constructor( expandable: Expandable?, slotId: String, ) { - @Suppress("UNCHECKED_CAST") + val (decodedSlotId, decodedConfigKey) = configKey.decode() val config = - if (isUsingRepository) { - val (slotId, decodedConfigKey) = configKey.decode() - repository.get().selections.value[slotId]?.find { it.key == decodedConfigKey } - } else { - registry.get(configKey) - } + repository.get().selections.value[decodedSlotId]?.find { it.key == decodedConfigKey } if (config == null) { Log.e(TAG, "Affordance config with key of \"$configKey\" not found!") return @@ -183,7 +169,6 @@ constructor( * @return `true` if the affordance was selected successfully; `false` otherwise. */ suspend fun select(slotId: String, affordanceId: String): Boolean { - check(isUsingRepository) if (isFeatureDisabledByDevicePolicy()) { return false } @@ -226,7 +211,6 @@ constructor( * the affordance was not on the slot to begin with). */ suspend fun unselect(slotId: String, affordanceId: String?): Boolean { - check(isUsingRepository) if (isFeatureDisabledByDevicePolicy()) { return false } @@ -286,17 +270,12 @@ constructor( private fun quickAffordanceInternal( position: KeyguardQuickAffordancePosition - ): Flow<KeyguardQuickAffordanceModel> { - return if (isUsingRepository) { - repository - .get() - .selections - .map { it[position.toSlotId()] ?: emptyList() } - .flatMapLatest { configs -> combinedConfigs(position, configs) } - } else { - combinedConfigs(position, registry.getAll(position)) - } - } + ): Flow<KeyguardQuickAffordanceModel> = + repository + .get() + .selections + .map { it[position.toSlotId()] ?: emptyList() } + .flatMapLatest { configs -> combinedConfigs(position, configs) } private fun combinedConfigs( position: KeyguardQuickAffordancePosition, @@ -326,12 +305,7 @@ constructor( states[index] as KeyguardQuickAffordanceConfig.LockScreenState.Visible val configKey = configs[index].key KeyguardQuickAffordanceModel.Visible( - configKey = - if (isUsingRepository) { - configKey.encode(position.toSlotId()) - } else { - configKey - }, + configKey = configKey.encode(position.toSlotId()), icon = visibleState.icon, activationState = visibleState.activationState, ) @@ -397,8 +371,6 @@ constructor( } suspend fun getSlotPickerRepresentations(): List<KeyguardSlotPickerRepresentation> { - check(isUsingRepository) - if (isFeatureDisabledByDevicePolicy()) { return emptyList() } @@ -416,7 +388,6 @@ constructor( name = Contract.FlagsTable.FLAG_NAME_CUSTOM_LOCK_SCREEN_QUICK_AFFORDANCES_ENABLED, value = !isFeatureDisabledByDevicePolicy() && - featureFlags.isEnabled(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES) && appContext.resources.getBoolean(R.bool.custom_lockscreen_shortcuts_enabled), ), KeyguardPickerFlag( diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/quickaffordance/KeyguardQuickAffordanceModule.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/quickaffordance/KeyguardQuickAffordanceModule.kt deleted file mode 100644 index b48acb65849e..000000000000 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/quickaffordance/KeyguardQuickAffordanceModule.kt +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.android.systemui.keyguard.domain.quickaffordance - -import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceConfig -import dagger.Binds -import dagger.Module - -@Module -interface KeyguardQuickAffordanceModule { - @Binds - fun keyguardQuickAffordanceRegistry( - impl: KeyguardQuickAffordanceRegistryImpl - ): KeyguardQuickAffordanceRegistry<out KeyguardQuickAffordanceConfig> -} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/quickaffordance/KeyguardQuickAffordanceRegistry.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/quickaffordance/KeyguardQuickAffordanceRegistry.kt deleted file mode 100644 index 8526ada69569..000000000000 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/quickaffordance/KeyguardQuickAffordanceRegistry.kt +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.android.systemui.keyguard.domain.quickaffordance - -import com.android.systemui.keyguard.data.quickaffordance.HomeControlsKeyguardQuickAffordanceConfig -import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceConfig -import com.android.systemui.keyguard.data.quickaffordance.QrCodeScannerKeyguardQuickAffordanceConfig -import com.android.systemui.keyguard.data.quickaffordance.QuickAccessWalletKeyguardQuickAffordanceConfig -import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancePosition -import javax.inject.Inject - -/** Central registry of all known quick affordance configs. */ -interface KeyguardQuickAffordanceRegistry<T : KeyguardQuickAffordanceConfig> { - fun getAll(position: KeyguardQuickAffordancePosition): List<T> - fun get(key: String): T -} - -class KeyguardQuickAffordanceRegistryImpl -@Inject -constructor( - homeControls: HomeControlsKeyguardQuickAffordanceConfig, - quickAccessWallet: QuickAccessWalletKeyguardQuickAffordanceConfig, - qrCodeScanner: QrCodeScannerKeyguardQuickAffordanceConfig, -) : KeyguardQuickAffordanceRegistry<KeyguardQuickAffordanceConfig> { - private val configsByPosition = - mapOf( - KeyguardQuickAffordancePosition.BOTTOM_START to - listOf( - homeControls, - ), - KeyguardQuickAffordancePosition.BOTTOM_END to - listOf( - quickAccessWallet, - qrCodeScanner, - ), - ) - private val configByKey = - configsByPosition.values.flatten().associateBy { config -> config.key } - - override fun getAll( - position: KeyguardQuickAffordancePosition, - ): List<KeyguardQuickAffordanceConfig> { - return configsByPosition.getValue(position) - } - - override fun get( - key: String, - ): KeyguardQuickAffordanceConfig { - return configByKey.getValue(key) - } -} diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/CustomizationProviderTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/CustomizationProviderTest.kt index 3383516fa366..e73d580bfce8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/CustomizationProviderTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/CustomizationProviderTest.kt @@ -175,7 +175,6 @@ class CustomizationProviderTest : SysuiTestCase() { ) val featureFlags = FakeFeatureFlags().apply { - set(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES, true) set(Flags.LOCKSCREEN_CUSTOM_CLOCKS, true) set(Flags.REVAMPED_WALLPAPER_UI, true) set(Flags.WALLPAPER_FULLSCREEN_PREVIEW, true) @@ -191,7 +190,6 @@ class CustomizationProviderTest : SysuiTestCase() { bouncerRepository = FakeKeyguardBouncerRepository(), configurationRepository = FakeConfigurationRepository(), ), - registry = mock(), lockPatternUtils = lockPatternUtils, keyguardStateController = keyguardStateController, userTracker = userTracker, diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/quickaffordance/MuteQuickAffordanceCoreStartableTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/quickaffordance/MuteQuickAffordanceCoreStartableTest.kt index f243d7b45990..df1833e2506e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/quickaffordance/MuteQuickAffordanceCoreStartableTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/quickaffordance/MuteQuickAffordanceCoreStartableTest.kt @@ -24,8 +24,6 @@ import androidx.lifecycle.Observer import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase -import com.android.systemui.flags.FeatureFlags -import com.android.systemui.flags.Flags import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository import com.android.systemui.settings.UserFileManager import com.android.systemui.settings.UserTracker @@ -59,8 +57,6 @@ import org.mockito.MockitoAnnotations class MuteQuickAffordanceCoreStartableTest : SysuiTestCase() { @Mock - private lateinit var featureFlags: FeatureFlags - @Mock private lateinit var userTracker: UserTracker @Mock private lateinit var ringerModeTracker: RingerModeTracker @@ -78,8 +74,6 @@ class MuteQuickAffordanceCoreStartableTest : SysuiTestCase() { fun setUp() { MockitoAnnotations.initMocks(this) - whenever(featureFlags.isEnabled(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES)).thenReturn(true) - val config: KeyguardQuickAffordanceConfig = mock() whenever(config.key).thenReturn(BuiltInKeyguardQuickAffordanceKeys.MUTE) @@ -90,7 +84,6 @@ class MuteQuickAffordanceCoreStartableTest : SysuiTestCase() { testScope = TestScope(testDispatcher) underTest = MuteQuickAffordanceCoreStartable( - featureFlags, userTracker, ringerModeTracker, userFileManager, @@ -101,20 +94,7 @@ class MuteQuickAffordanceCoreStartableTest : SysuiTestCase() { } @Test - fun featureFlagIsOFF_doNothingWithKeyguardQuickAffordanceRepository() = testScope.runTest { - //given - whenever(featureFlags.isEnabled(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES)).thenReturn(false) - - //when - underTest.start() - - //then - verifyZeroInteractions(keyguardQuickAffordanceRepository) - coroutineContext.cancelChildren() - } - - @Test - fun featureFlagIsON_callToKeyguardQuickAffordanceRepository() = testScope.runTest { + fun callToKeyguardQuickAffordanceRepository() = testScope.runTest { //given val ringerModeInternal = mock<MutableLiveData<Int>>() whenever(ringerModeTracker.ringerModeInternal).thenReturn(ringerModeInternal) diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorParameterizedTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorParameterizedTest.kt index 8540bf7f6b17..3858cfd1e5c6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorParameterizedTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorParameterizedTest.kt @@ -40,7 +40,6 @@ import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanc import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceRemoteUserSelectionManager import com.android.systemui.keyguard.data.repository.FakeBiometricSettingsRepository import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository -import com.android.systemui.keyguard.domain.quickaffordance.FakeKeyguardQuickAffordanceRegistry import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancePosition import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancesMetricsLogger import com.android.systemui.plugins.ActivityStarter @@ -300,7 +299,6 @@ class KeyguardQuickAffordanceInteractorParameterizedTest : SysuiTestCase() { ) val featureFlags = FakeFeatureFlags().apply { - set(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES, false) set(Flags.FACE_AUTH_REFACTOR, true) } val testDispatcher = StandardTestDispatcher() @@ -312,20 +310,6 @@ class KeyguardQuickAffordanceInteractorParameterizedTest : SysuiTestCase() { featureFlags = featureFlags, ) .keyguardInteractor, - registry = - FakeKeyguardQuickAffordanceRegistry( - mapOf( - KeyguardQuickAffordancePosition.BOTTOM_START to - listOf( - homeControls, - ), - KeyguardQuickAffordancePosition.BOTTOM_END to - listOf( - quickAccessWallet, - qrCodeScanner, - ), - ), - ), lockPatternUtils = lockPatternUtils, keyguardStateController = keyguardStateController, userTracker = userTracker, @@ -345,6 +329,7 @@ class KeyguardQuickAffordanceInteractorParameterizedTest : SysuiTestCase() { @Test fun onQuickAffordanceTriggered() = testScope.runTest { + val key = BuiltInKeyguardQuickAffordanceKeys.HOME_CONTROLS setUpMocks( needStrongAuthAfterBoot = needStrongAuthAfterBoot, keyguardIsUnlocked = keyguardIsUnlocked, @@ -367,7 +352,7 @@ class KeyguardQuickAffordanceInteractorParameterizedTest : SysuiTestCase() { } underTest.onQuickAffordanceTriggered( - configKey = BuiltInKeyguardQuickAffordanceKeys.HOME_CONTROLS, + configKey = "${KeyguardQuickAffordancePosition.BOTTOM_START.toSlotId()}::${key}", expandable = expandable, slotId = "", ) diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt index a0c5a75ecd9e..07caf5983311 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt @@ -44,7 +44,6 @@ import com.android.systemui.keyguard.data.repository.FakeBiometricSettingsReposi import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordanceModel -import com.android.systemui.keyguard.domain.quickaffordance.FakeKeyguardQuickAffordanceRegistry import com.android.systemui.keyguard.shared.model.KeyguardQuickAffordancePickerRepresentation import com.android.systemui.keyguard.shared.quickaffordance.ActivationState import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancePosition @@ -102,6 +101,15 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { MockitoAnnotations.initMocks(this) overrideResource(R.bool.custom_lockscreen_shortcuts_enabled, true) + overrideResource( + R.array.config_keyguardQuickAffordanceDefaults, + arrayOf( + KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START + ":" + + BuiltInKeyguardQuickAffordanceKeys.HOME_CONTROLS, + KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_END + ":" + + BuiltInKeyguardQuickAffordanceKeys.QUICK_ACCESS_WALLET + ) + ) repository = FakeKeyguardRepository() repository.setKeyguardShowing(true) @@ -164,7 +172,6 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { ) featureFlags = FakeFeatureFlags().apply { - set(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES, false) set(Flags.FACE_AUTH_REFACTOR, true) } @@ -176,20 +183,6 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { underTest = KeyguardQuickAffordanceInteractor( keyguardInteractor = withDeps.keyguardInteractor, - registry = - FakeKeyguardQuickAffordanceRegistry( - mapOf( - KeyguardQuickAffordancePosition.BOTTOM_START to - listOf( - homeControls, - ), - KeyguardQuickAffordancePosition.BOTTOM_END to - listOf( - quickAccessWallet, - qrCodeScanner, - ), - ), - ), lockPatternUtils = lockPatternUtils, keyguardStateController = keyguardStateController, userTracker = userTracker, @@ -225,7 +218,9 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { assertThat(collectedValue()) .isInstanceOf(KeyguardQuickAffordanceModel.Visible::class.java) val visibleModel = collectedValue() as KeyguardQuickAffordanceModel.Visible - assertThat(visibleModel.configKey).isEqualTo(configKey) + assertThat(visibleModel.configKey).isEqualTo( + "${KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START}::${configKey}" + ) assertThat(visibleModel.icon).isEqualTo(ICON) assertThat(visibleModel.icon.contentDescription) .isEqualTo(ContentDescription.Resource(res = CONTENT_DESCRIPTION_RESOURCE_ID)) @@ -250,7 +245,9 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { assertThat(collectedValue()) .isInstanceOf(KeyguardQuickAffordanceModel.Visible::class.java) val visibleModel = collectedValue() as KeyguardQuickAffordanceModel.Visible - assertThat(visibleModel.configKey).isEqualTo(configKey) + assertThat(visibleModel.configKey).isEqualTo( + "${KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_END}::${configKey}" + ) assertThat(visibleModel.icon).isEqualTo(ICON) assertThat(visibleModel.icon.contentDescription) .isEqualTo(ContentDescription.Resource(res = CONTENT_DESCRIPTION_RESOURCE_ID)) @@ -387,7 +384,9 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { assertThat(collectedValue()) .isInstanceOf(KeyguardQuickAffordanceModel.Visible::class.java) val visibleModel = collectedValue() as KeyguardQuickAffordanceModel.Visible - assertThat(visibleModel.configKey).isEqualTo(configKey) + assertThat(visibleModel.configKey).isEqualTo( + "${KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START}::${configKey}" + ) assertThat(visibleModel.icon).isEqualTo(ICON) assertThat(visibleModel.icon.contentDescription) .isEqualTo(ContentDescription.Resource(res = CONTENT_DESCRIPTION_RESOURCE_ID)) @@ -401,8 +400,6 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { R.array.config_keyguardQuickAffordanceDefaults, arrayOf<String>(), ) - - featureFlags.set(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES, true) homeControls.setState( KeyguardQuickAffordanceConfig.LockScreenState.Visible(icon = ICON) ) @@ -543,7 +540,6 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { @Test fun unselect_one() = testScope.runTest { - featureFlags.set(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES, true) homeControls.setState( KeyguardQuickAffordanceConfig.LockScreenState.Visible(icon = ICON) ) @@ -620,7 +616,6 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { @Test fun useLongPress_whenDocked_isFalse() = testScope.runTest { - featureFlags.set(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES, true) dockManager.setIsDocked(true) val useLongPress by collectLastValue(underTest.useLongPress()) @@ -631,7 +626,6 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { @Test fun useLongPress_whenNotDocked_isTrue() = testScope.runTest { - featureFlags.set(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES, true) dockManager.setIsDocked(false) val useLongPress by collectLastValue(underTest.useLongPress()) @@ -642,7 +636,6 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { @Test fun useLongPress_whenNotDocked_isTrue_changedTo_whenDocked_isFalse() = testScope.runTest { - featureFlags.set(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES, true) dockManager.setIsDocked(false) val firstUseLongPress by collectLastValue(underTest.useLongPress()) runCurrent() @@ -660,7 +653,6 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { @Test fun unselect_all() = testScope.runTest { - featureFlags.set(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES, true) homeControls.setState( KeyguardQuickAffordanceConfig.LockScreenState.Visible(icon = ICON) ) diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/quickaffordance/FakeKeyguardQuickAffordanceRegistry.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/quickaffordance/FakeKeyguardQuickAffordanceRegistry.kt deleted file mode 100644 index 13e2768e1fd0..000000000000 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/quickaffordance/FakeKeyguardQuickAffordanceRegistry.kt +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.android.systemui.keyguard.domain.quickaffordance - -import com.android.systemui.keyguard.data.quickaffordance.FakeKeyguardQuickAffordanceConfig -import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancePosition - -/** Fake implementation of [FakeKeyguardQuickAffordanceRegistry], for tests. */ -class FakeKeyguardQuickAffordanceRegistry( - private val configsByPosition: - Map<KeyguardQuickAffordancePosition, List<FakeKeyguardQuickAffordanceConfig>>, -) : KeyguardQuickAffordanceRegistry<FakeKeyguardQuickAffordanceConfig> { - - override fun getAll( - position: KeyguardQuickAffordancePosition - ): List<FakeKeyguardQuickAffordanceConfig> { - return configsByPosition.getValue(position) - } - - override fun get( - key: String, - ): FakeKeyguardQuickAffordanceConfig { - return configsByPosition.values.flatten().associateBy { config -> config.key }.getValue(key) - } -} diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBottomAreaViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBottomAreaViewModelTest.kt index d02b3fccef1f..06bf7f06a12d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBottomAreaViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBottomAreaViewModelTest.kt @@ -22,6 +22,7 @@ import android.os.UserHandle import androidx.test.filters.SmallTest import com.android.internal.logging.testing.UiEventLoggerFake import com.android.internal.widget.LockPatternUtils +import com.android.systemui.R import com.android.systemui.SysuiTestCase import com.android.systemui.animation.DialogLaunchAnimator import com.android.systemui.animation.Expandable @@ -47,7 +48,6 @@ import com.android.systemui.keyguard.domain.interactor.KeyguardInteractorFactory import com.android.systemui.keyguard.domain.interactor.KeyguardLongPressInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardQuickAffordanceInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractorFactory -import com.android.systemui.keyguard.domain.quickaffordance.FakeKeyguardQuickAffordanceRegistry import com.android.systemui.keyguard.shared.quickaffordance.ActivationState import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancePosition import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancesMetricsLogger @@ -102,7 +102,6 @@ class KeyguardBottomAreaViewModelTest : SysuiTestCase() { private lateinit var testScope: TestScope private lateinit var repository: FakeKeyguardRepository - private lateinit var registry: FakeKeyguardQuickAffordanceRegistry private lateinit var homeControlsQuickAffordanceConfig: FakeKeyguardQuickAffordanceConfig private lateinit var quickAccessWalletAffordanceConfig: FakeKeyguardQuickAffordanceConfig private lateinit var qrCodeScannerAffordanceConfig: FakeKeyguardQuickAffordanceConfig @@ -112,6 +111,18 @@ class KeyguardBottomAreaViewModelTest : SysuiTestCase() { @Before fun setUp() { MockitoAnnotations.initMocks(this) + + overrideResource(R.bool.custom_lockscreen_shortcuts_enabled, true) + overrideResource( + R.array.config_keyguardQuickAffordanceDefaults, + arrayOf( + KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START + ":" + + BuiltInKeyguardQuickAffordanceKeys.HOME_CONTROLS, + KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_END + ":" + + BuiltInKeyguardQuickAffordanceKeys.QUICK_ACCESS_WALLET + ) + ) + whenever(burnInHelperWrapper.burnInOffset(anyInt(), any())) .thenReturn(RETURNED_BURN_IN_OFFSET) @@ -125,23 +136,8 @@ class KeyguardBottomAreaViewModelTest : SysuiTestCase() { FakeKeyguardQuickAffordanceConfig(BuiltInKeyguardQuickAffordanceKeys.QR_CODE_SCANNER) dockManager = DockManagerFake() biometricSettingsRepository = FakeBiometricSettingsRepository() - registry = - FakeKeyguardQuickAffordanceRegistry( - mapOf( - KeyguardQuickAffordancePosition.BOTTOM_START to - listOf( - homeControlsQuickAffordanceConfig, - ), - KeyguardQuickAffordancePosition.BOTTOM_END to - listOf( - quickAccessWalletAffordanceConfig, - qrCodeScannerAffordanceConfig, - ), - ), - ) val featureFlags = FakeFeatureFlags().apply { - set(Flags.CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES, false) set(Flags.FACE_AUTH_REFACTOR, true) set(Flags.LOCK_SCREEN_LONG_PRESS_ENABLED, false) set(Flags.LOCK_SCREEN_LONG_PRESS_DIRECT_TO_WPP, false) @@ -152,7 +148,6 @@ class KeyguardBottomAreaViewModelTest : SysuiTestCase() { repository = withDeps.repository whenever(userTracker.userHandle).thenReturn(mock()) - whenever(userTracker.userId).thenReturn(10) whenever(lockPatternUtils.getStrongAuthForUser(anyInt())) .thenReturn(LockPatternUtils.StrongAuthTracker.STRONG_AUTH_NOT_REQUIRED) val testDispatcher = StandardTestDispatcher() @@ -225,7 +220,6 @@ class KeyguardBottomAreaViewModelTest : SysuiTestCase() { quickAffordanceInteractor = KeyguardQuickAffordanceInteractor( keyguardInteractor = keyguardInteractor, - registry = registry, lockPatternUtils = lockPatternUtils, keyguardStateController = keyguardStateController, userTracker = userTracker, @@ -700,7 +694,8 @@ class KeyguardBottomAreaViewModelTest : SysuiTestCase() { KeyguardQuickAffordanceConfig.LockScreenState.Hidden } config.setState(lockScreenState) - return config.key + + return "${position.toSlotId()}::${config.key}" } private fun assertQuickAffordanceViewModel( |