Loading packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java +3 −5 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ public class FeatureFlagsDebug implements FeatureFlags { new ServerFlagReader.ChangeListener() { @Override public void onChange() { mRestarter.restart(); mRestarter.restartSystemUI(); } }; Loading Loading @@ -326,9 +326,7 @@ public class FeatureFlagsDebug implements FeatureFlags { Log.i(TAG, "SystemUI Restart Suppressed"); return; } Log.i(TAG, "Restarting SystemUI"); // SysUI starts back when up exited. Is there a better way to do this? System.exit(0); mRestarter.restartSystemUI(); } private void restartAndroid(boolean requestSuppress) { Loading @@ -336,7 +334,7 @@ public class FeatureFlagsDebug implements FeatureFlags { Log.i(TAG, "Android Restart Suppressed"); return; } mRestarter.restart(); mRestarter.restartAndroid(); } void setBooleanFlagInternal(Flag<?> flag, boolean value) { Loading packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebugRestarter.kt +19 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,8 @@ constructor( private val systemExitRestarter: SystemExitRestarter, ) : Restarter { private var androidRestartRequested = false val observer = object : WakefulnessLifecycle.Observer { override fun onFinishedGoingToSleep() { Loading @@ -36,8 +38,18 @@ constructor( } } override fun restart() { Log.d(FeatureFlagsDebug.TAG, "Restart requested. Restarting on next screen off.") 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() { if (wakefulnessLifecycle.wakefulness == WakefulnessLifecycle.WAKEFULNESS_ASLEEP) { restartNow() } else { Loading @@ -46,6 +58,10 @@ constructor( } private fun restartNow() { systemExitRestarter.restart() if (androidRestartRequested) { systemExitRestarter.restartAndroid() } else { systemExitRestarter.restartSystemUI() } } } packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsRelease.java +1 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ public class FeatureFlagsRelease implements FeatureFlags { new ServerFlagReader.ChangeListener() { @Override public void onChange() { mRestarter.restart(); mRestarter.restartSystemUI(); } }; Loading packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsReleaseRestarter.kt +30 −13 Original line number Diff line number Diff line Loading @@ -34,35 +34,48 @@ constructor( @Background private val bgExecutor: DelayableExecutor, private val systemExitRestarter: SystemExitRestarter ) : Restarter { var shouldRestart = false var listenersAdded = false var pendingRestart: Runnable? = null var androidRestartRequested = false val observer = object : WakefulnessLifecycle.Observer { override fun onFinishedGoingToSleep() { maybeScheduleRestart() scheduleRestart() } } val batteryCallback = object : BatteryController.BatteryStateChangeCallback { override fun onBatteryLevelChanged(level: Int, pluggedIn: Boolean, charging: Boolean) { maybeScheduleRestart() scheduleRestart() } } 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() 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 maybeScheduleRestart() { private fun scheduleRestart() { // Don't bother adding listeners twice. if (!listenersAdded) { listenersAdded = true wakefulnessLifecycle.addObserver(observer) batteryController.addCallback(batteryCallback) } if ( wakefulnessLifecycle.wakefulness == WAKEFULNESS_ASLEEP && batteryController.isPluggedIn ) { Loading @@ -77,6 +90,10 @@ constructor( private fun restartNow() { Log.d(FeatureFlagsRelease.TAG, "Restarting due to systemui flag change") systemExitRestarter.restart() if (androidRestartRequested) { systemExitRestarter.restartAndroid() } else { systemExitRestarter.restartSystemUI() } } } packages/SystemUI/src/com/android/systemui/flags/Restarter.kt +4 −2 Original line number Diff line number Diff line Loading @@ -16,5 +16,7 @@ package com.android.systemui.flags interface Restarter { fun restart() fun restartSystemUI() fun restartAndroid() } Loading
packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java +3 −5 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ public class FeatureFlagsDebug implements FeatureFlags { new ServerFlagReader.ChangeListener() { @Override public void onChange() { mRestarter.restart(); mRestarter.restartSystemUI(); } }; Loading Loading @@ -326,9 +326,7 @@ public class FeatureFlagsDebug implements FeatureFlags { Log.i(TAG, "SystemUI Restart Suppressed"); return; } Log.i(TAG, "Restarting SystemUI"); // SysUI starts back when up exited. Is there a better way to do this? System.exit(0); mRestarter.restartSystemUI(); } private void restartAndroid(boolean requestSuppress) { Loading @@ -336,7 +334,7 @@ public class FeatureFlagsDebug implements FeatureFlags { Log.i(TAG, "Android Restart Suppressed"); return; } mRestarter.restart(); mRestarter.restartAndroid(); } void setBooleanFlagInternal(Flag<?> flag, boolean value) { Loading
packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebugRestarter.kt +19 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,8 @@ constructor( private val systemExitRestarter: SystemExitRestarter, ) : Restarter { private var androidRestartRequested = false val observer = object : WakefulnessLifecycle.Observer { override fun onFinishedGoingToSleep() { Loading @@ -36,8 +38,18 @@ constructor( } } override fun restart() { Log.d(FeatureFlagsDebug.TAG, "Restart requested. Restarting on next screen off.") 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() { if (wakefulnessLifecycle.wakefulness == WakefulnessLifecycle.WAKEFULNESS_ASLEEP) { restartNow() } else { Loading @@ -46,6 +58,10 @@ constructor( } private fun restartNow() { systemExitRestarter.restart() if (androidRestartRequested) { systemExitRestarter.restartAndroid() } else { systemExitRestarter.restartSystemUI() } } }
packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsRelease.java +1 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ public class FeatureFlagsRelease implements FeatureFlags { new ServerFlagReader.ChangeListener() { @Override public void onChange() { mRestarter.restart(); mRestarter.restartSystemUI(); } }; Loading
packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsReleaseRestarter.kt +30 −13 Original line number Diff line number Diff line Loading @@ -34,35 +34,48 @@ constructor( @Background private val bgExecutor: DelayableExecutor, private val systemExitRestarter: SystemExitRestarter ) : Restarter { var shouldRestart = false var listenersAdded = false var pendingRestart: Runnable? = null var androidRestartRequested = false val observer = object : WakefulnessLifecycle.Observer { override fun onFinishedGoingToSleep() { maybeScheduleRestart() scheduleRestart() } } val batteryCallback = object : BatteryController.BatteryStateChangeCallback { override fun onBatteryLevelChanged(level: Int, pluggedIn: Boolean, charging: Boolean) { maybeScheduleRestart() scheduleRestart() } } 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() 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 maybeScheduleRestart() { private fun scheduleRestart() { // Don't bother adding listeners twice. if (!listenersAdded) { listenersAdded = true wakefulnessLifecycle.addObserver(observer) batteryController.addCallback(batteryCallback) } if ( wakefulnessLifecycle.wakefulness == WAKEFULNESS_ASLEEP && batteryController.isPluggedIn ) { Loading @@ -77,6 +90,10 @@ constructor( private fun restartNow() { Log.d(FeatureFlagsRelease.TAG, "Restarting due to systemui flag change") systemExitRestarter.restart() if (androidRestartRequested) { systemExitRestarter.restartAndroid() } else { systemExitRestarter.restartSystemUI() } } }
packages/SystemUI/src/com/android/systemui/flags/Restarter.kt +4 −2 Original line number Diff line number Diff line Loading @@ -16,5 +16,7 @@ package com.android.systemui.flags interface Restarter { fun restart() fun restartSystemUI() fun restartAndroid() }