diff options
8 files changed, 41 insertions, 83 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java index 267e0366b00e..81df4ed51d8d 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java +++ b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java @@ -87,7 +87,7 @@ public class FeatureFlagsDebug implements FeatureFlags { new ServerFlagReader.ChangeListener() { @Override public void onChange() { - mRestarter.restartSystemUI(); + mRestarter.restart(); } }; @@ -327,7 +327,9 @@ public class FeatureFlagsDebug implements FeatureFlags { Log.i(TAG, "SystemUI Restart Suppressed"); return; } - mRestarter.restartSystemUI(); + Log.i(TAG, "Restarting SystemUI"); + // SysUI starts back when up exited. Is there a better way to do this? + System.exit(0); } private void restartAndroid(boolean requestSuppress) { @@ -335,7 +337,7 @@ public class FeatureFlagsDebug implements FeatureFlags { Log.i(TAG, "Android Restart Suppressed"); return; } - mRestarter.restartAndroid(); + mRestarter.restart(); } void setBooleanFlagInternal(Flag<?> flag, boolean value) { diff --git a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebugRestarter.kt b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebugRestarter.kt index 069e6127aa30..3d9f62768a37 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebugRestarter.kt +++ b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebugRestarter.kt @@ -28,8 +28,6 @@ constructor( private val systemExitRestarter: SystemExitRestarter, ) : Restarter { - private var androidRestartRequested = false - val observer = object : WakefulnessLifecycle.Observer { override fun onFinishedGoingToSleep() { @@ -38,18 +36,8 @@ constructor( } } - override fun restartSystemUI() { - Log.d(FeatureFlagsDebug.TAG, "SystemUI Restart requested. Restarting on next screen off.") - scheduleRestart() - } - - override fun restartAndroid() { - Log.d(FeatureFlagsDebug.TAG, "Android Restart requested. Restarting on next screen off.") - androidRestartRequested = true - scheduleRestart() - } - - fun scheduleRestart() { + override fun restart() { + Log.d(FeatureFlagsDebug.TAG, "Restart requested. Restarting on next screen off.") if (wakefulnessLifecycle.wakefulness == WakefulnessLifecycle.WAKEFULNESS_ASLEEP) { restartNow() } else { @@ -58,10 +46,6 @@ constructor( } private fun restartNow() { - if (androidRestartRequested) { - systemExitRestarter.restartAndroid() - } else { - systemExitRestarter.restartSystemUI() - } + systemExitRestarter.restart() } } diff --git a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsRelease.java b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsRelease.java index 8bddacc4e32c..3c83682210b6 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsRelease.java +++ b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsRelease.java @@ -61,7 +61,7 @@ public class FeatureFlagsRelease implements FeatureFlags { new ServerFlagReader.ChangeListener() { @Override public void onChange() { - mRestarter.restartSystemUI(); + mRestarter.restart(); } }; diff --git a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsReleaseRestarter.kt b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsReleaseRestarter.kt index 7ff3876f5d4e..a3f0f665c056 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsReleaseRestarter.kt +++ b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsReleaseRestarter.kt @@ -34,48 +34,35 @@ constructor( @Background private val bgExecutor: DelayableExecutor, private val systemExitRestarter: SystemExitRestarter ) : Restarter { - var listenersAdded = false + var shouldRestart = false var pendingRestart: Runnable? = null - var androidRestartRequested = false val observer = object : WakefulnessLifecycle.Observer { override fun onFinishedGoingToSleep() { - scheduleRestart() + maybeScheduleRestart() } } val batteryCallback = object : BatteryController.BatteryStateChangeCallback { override fun onBatteryLevelChanged(level: Int, pluggedIn: Boolean, charging: Boolean) { - scheduleRestart() + maybeScheduleRestart() } } - override fun restartSystemUI() { - Log.d( - FeatureFlagsDebug.TAG, - "SystemUI Restart requested. Restarting when plugged in and idle." - ) - scheduleRestart() - } - - override fun restartAndroid() { - Log.d( - FeatureFlagsDebug.TAG, - "Android Restart requested. Restarting when plugged in and idle." - ) - androidRestartRequested = true - scheduleRestart() - } - - private fun scheduleRestart() { - // Don't bother adding listeners twice. - if (!listenersAdded) { - listenersAdded = true + override fun restart() { + Log.d(FeatureFlagsDebug.TAG, "Restart requested. Restarting when plugged in and idle.") + if (!shouldRestart) { + // Don't bother scheduling twice. + shouldRestart = true wakefulnessLifecycle.addObserver(observer) batteryController.addCallback(batteryCallback) + maybeScheduleRestart() } + } + + private fun maybeScheduleRestart() { if ( wakefulnessLifecycle.wakefulness == WAKEFULNESS_ASLEEP && batteryController.isPluggedIn ) { @@ -90,10 +77,6 @@ constructor( private fun restartNow() { Log.d(FeatureFlagsRelease.TAG, "Restarting due to systemui flag change") - if (androidRestartRequested) { - systemExitRestarter.restartAndroid() - } else { - systemExitRestarter.restartSystemUI() - } + systemExitRestarter.restart() } } diff --git a/packages/SystemUI/src/com/android/systemui/flags/Restarter.kt b/packages/SystemUI/src/com/android/systemui/flags/Restarter.kt index ce8b821b1182..8f095a24de94 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Restarter.kt +++ b/packages/SystemUI/src/com/android/systemui/flags/Restarter.kt @@ -16,7 +16,5 @@ package com.android.systemui.flags interface Restarter { - fun restartSystemUI() - - fun restartAndroid() -} + fun restart() +}
\ No newline at end of file diff --git a/packages/SystemUI/src/com/android/systemui/flags/SystemExitRestarter.kt b/packages/SystemUI/src/com/android/systemui/flags/SystemExitRestarter.kt index 89daa6487fbc..f1b1be47a84f 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/SystemExitRestarter.kt +++ b/packages/SystemUI/src/com/android/systemui/flags/SystemExitRestarter.kt @@ -16,19 +16,10 @@ package com.android.systemui.flags -import com.android.internal.statusbar.IStatusBarService import javax.inject.Inject -class SystemExitRestarter -@Inject -constructor( - private val barService: IStatusBarService, -) : Restarter { - override fun restartAndroid() { - barService.restart() - } - - override fun restartSystemUI() { +class SystemExitRestarter @Inject constructor() : Restarter { + override fun restart() { System.exit(0) } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsDebugRestarterTest.kt b/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsDebugRestarterTest.kt index ed167212c96a..1e7b1f26ba8c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsDebugRestarterTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsDebugRestarterTest.kt @@ -48,22 +48,22 @@ class FeatureFlagsDebugRestarterTest : SysuiTestCase() { @Test fun testRestart_ImmediateWhenAsleep() { whenever(wakefulnessLifecycle.wakefulness).thenReturn(WAKEFULNESS_ASLEEP) - restarter.restartSystemUI() - verify(systemExitRestarter).restartSystemUI() + restarter.restart() + verify(systemExitRestarter).restart() } @Test fun testRestart_WaitsForSceenOff() { whenever(wakefulnessLifecycle.wakefulness).thenReturn(WAKEFULNESS_AWAKE) - restarter.restartSystemUI() - verify(systemExitRestarter, never()).restartSystemUI() + restarter.restart() + verify(systemExitRestarter, never()).restart() val captor = ArgumentCaptor.forClass(WakefulnessLifecycle.Observer::class.java) verify(wakefulnessLifecycle).addObserver(captor.capture()) captor.value.onFinishedGoingToSleep() - verify(systemExitRestarter).restartSystemUI() + verify(systemExitRestarter).restart() } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsReleaseRestarterTest.kt b/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsReleaseRestarterTest.kt index 7d807e2ff207..68ca48dd327d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsReleaseRestarterTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsReleaseRestarterTest.kt @@ -63,7 +63,7 @@ class FeatureFlagsReleaseRestarterTest : SysuiTestCase() { whenever(batteryController.isPluggedIn).thenReturn(true) assertThat(executor.numPending()).isEqualTo(0) - restarter.restartSystemUI() + restarter.restart() assertThat(executor.numPending()).isEqualTo(1) } @@ -72,11 +72,11 @@ class FeatureFlagsReleaseRestarterTest : SysuiTestCase() { whenever(wakefulnessLifecycle.wakefulness).thenReturn(WAKEFULNESS_ASLEEP) whenever(batteryController.isPluggedIn).thenReturn(true) - restarter.restartSystemUI() - verify(systemExitRestarter, never()).restartSystemUI() + restarter.restart() + verify(systemExitRestarter, never()).restart() executor.advanceClockToLast() executor.runAllReady() - verify(systemExitRestarter).restartSystemUI() + verify(systemExitRestarter).restart() } @Test @@ -85,7 +85,7 @@ class FeatureFlagsReleaseRestarterTest : SysuiTestCase() { whenever(batteryController.isPluggedIn).thenReturn(true) assertThat(executor.numPending()).isEqualTo(0) - restarter.restartSystemUI() + restarter.restart() assertThat(executor.numPending()).isEqualTo(0) } @@ -95,7 +95,7 @@ class FeatureFlagsReleaseRestarterTest : SysuiTestCase() { whenever(batteryController.isPluggedIn).thenReturn(false) assertThat(executor.numPending()).isEqualTo(0) - restarter.restartSystemUI() + restarter.restart() assertThat(executor.numPending()).isEqualTo(0) } @@ -105,8 +105,8 @@ class FeatureFlagsReleaseRestarterTest : SysuiTestCase() { whenever(batteryController.isPluggedIn).thenReturn(true) assertThat(executor.numPending()).isEqualTo(0) - restarter.restartSystemUI() - restarter.restartSystemUI() + restarter.restart() + restarter.restart() assertThat(executor.numPending()).isEqualTo(1) } @@ -115,7 +115,7 @@ class FeatureFlagsReleaseRestarterTest : SysuiTestCase() { whenever(wakefulnessLifecycle.wakefulness).thenReturn(WAKEFULNESS_AWAKE) whenever(batteryController.isPluggedIn).thenReturn(true) assertThat(executor.numPending()).isEqualTo(0) - restarter.restartSystemUI() + restarter.restart() val captor = ArgumentCaptor.forClass(WakefulnessLifecycle.Observer::class.java) verify(wakefulnessLifecycle).addObserver(captor.capture()) @@ -131,7 +131,7 @@ class FeatureFlagsReleaseRestarterTest : SysuiTestCase() { whenever(wakefulnessLifecycle.wakefulness).thenReturn(WAKEFULNESS_ASLEEP) whenever(batteryController.isPluggedIn).thenReturn(false) assertThat(executor.numPending()).isEqualTo(0) - restarter.restartSystemUI() + restarter.restart() val captor = ArgumentCaptor.forClass(BatteryController.BatteryStateChangeCallback::class.java) |