Add Flag for Custom Clocks Test: Manual Bug: 229771520 Change-Id: Ic06481b3da589ab6f27ae4ff79bd39a45dee3711 Merged-In: Ic06481b3da589ab6f27ae4ff79bd39a45dee3711
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/ClockRegistry.kt b/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/ClockRegistry.kt index 4b8b46d5..06247c6 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/ClockRegistry.kt +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/ClockRegistry.kt
@@ -54,6 +54,8 @@ fun onClockChanged() } + var isEnabled: Boolean = false + private val gson = Gson() private val availableClocks = mutableMapOf<ClockId, ClockInfo>() private val clockChangeListeners = mutableListOf<ClockChangeListener>() @@ -88,6 +90,12 @@ init { connectClocks(defaultClockProvider) + if (!availableClocks.containsKey(DEFAULT_CLOCK_ID)) { + throw IllegalArgumentException( + "$defaultClockProvider did not register clock at $DEFAULT_CLOCK_ID" + ) + } + pluginManager.addPluginListener(pluginListener, ClockProviderPlugin::class.java) context.contentResolver.registerContentObserver( Settings.Secure.getUriFor(Settings.Secure.LOCK_SCREEN_CUSTOM_CLOCK_FACE), @@ -133,7 +141,12 @@ } } - fun getClocks(): List<ClockMetadata> = availableClocks.map { (_, clock) -> clock.metadata } + fun getClocks(): List<ClockMetadata> { + if (!isEnabled) { + return listOf(availableClocks[DEFAULT_CLOCK_ID]!!.metadata) + } + return availableClocks.map { (_, clock) -> clock.metadata } + } fun getClockThumbnail(clockId: ClockId): Drawable? = availableClocks[clockId]?.provider?.getClockThumbnail(clockId) @@ -148,7 +161,7 @@ fun createCurrentClock(): Clock { val clockId = currentClockId - if (!clockId.isNullOrEmpty()) { + if (isEnabled && clockId.isNotEmpty()) { val clock = createClock(clockId) if (clock != null) { return clock
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java index d566f49..eeab538 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java
@@ -37,6 +37,8 @@ import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dump.DumpManager; +import com.android.systemui.flags.FeatureFlags; +import com.android.systemui.flags.Flags; import com.android.systemui.keyguard.KeyguardUnlockAnimationController; import com.android.systemui.plugins.Clock; import com.android.systemui.plugins.statusbar.StatusBarStateController; @@ -118,7 +120,8 @@ SecureSettings secureSettings, @Main Executor uiExecutor, DumpManager dumpManager, - ClockEventController clockEventController) { + ClockEventController clockEventController, + FeatureFlags featureFlags) { super(keyguardClockSwitch); mStatusBarStateController = statusBarStateController; mClockRegistry = clockRegistry; @@ -131,6 +134,7 @@ mDumpManager = dumpManager; mClockEventController = clockEventController; + mClockRegistry.setEnabled(featureFlags.isEnabled(Flags.LOCKSCREEN_CUSTOM_CLOCKS)); mClockChangedListener = () -> { setClock(mClockRegistry.createCurrentClock()); };
diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.java b/packages/SystemUI/src/com/android/systemui/flags/Flags.java index 958a219..f6dcabf 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.java +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.java
@@ -87,12 +87,15 @@ public static final ResourceBooleanFlag FACE_SCANNING_ANIM = new ResourceBooleanFlag(205, R.bool.config_enableFaceScanningAnimation); + /** * Whether the KeyguardBottomArea(View|Controller) should use the modern architecture or the old * one. */ public static final BooleanFlag MODERN_BOTTOM_AREA = new BooleanFlag(206, false); + public static final BooleanFlag LOCKSCREEN_CUSTOM_CLOCKS = new BooleanFlag(207, false); + /***************************************/ // 300 - power menu public static final BooleanFlag POWER_MENU_LITE =
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java index cd2a43f..635ee9e 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java
@@ -43,6 +43,7 @@ import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.dump.DumpManager; +import com.android.systemui.flags.FeatureFlags; import com.android.systemui.keyguard.KeyguardUnlockAnimationController; import com.android.systemui.plugins.Clock; import com.android.systemui.plugins.statusbar.StatusBarStateController; @@ -102,6 +103,8 @@ private FrameLayout mLargeClockFrame; @Mock private SecureSettings mSecureSettings; + @Mock + private FeatureFlags mFeatureFlags; private final View mFakeSmartspaceView = new View(mContext); @@ -138,7 +141,8 @@ mSecureSettings, mExecutor, mDumpManager, - mClockEventController + mClockEventController, + mFeatureFlags ); when(mStatusBarStateController.getState()).thenReturn(StatusBarState.SHADE);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shared/clocks/ClockRegistryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shared/clocks/ClockRegistryTest.kt index 136a3951..131eac6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shared/clocks/ClockRegistryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/shared/clocks/ClockRegistryTest.kt
@@ -110,6 +110,7 @@ get() = settingValue set(value) { settingValue = value } } + registry.isEnabled = true verify(mockPluginManager) .addPluginListener(captor.capture(), eq(ClockProviderPlugin::class.java))