Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 68888b39 authored by Sam Dubey's avatar Sam Dubey Committed by Android (Google) Code Review
Browse files

Merge "Revert "Ensure SystemUI gets restarted lazily."" into tm-qpr-dev

parents 3d100cf8 d4c3da1b
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -86,7 +86,7 @@ public class FeatureFlagsDebug implements FeatureFlags {
            new ServerFlagReader.ChangeListener() {
                @Override
                public void onChange() {
                    mRestarter.restartSystemUI();
                    mRestarter.restart();
                }
            };

@@ -326,7 +326,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) {
@@ -334,7 +336,7 @@ public class FeatureFlagsDebug implements FeatureFlags {
            Log.i(TAG, "Android Restart Suppressed");
            return;
        }
        mRestarter.restartAndroid();
        mRestarter.restart();
    }

    void setBooleanFlagInternal(Flag<?> flag, boolean value) {
+3 −19
Original line number Diff line number Diff line
@@ -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()
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ public class FeatureFlagsRelease implements FeatureFlags {
            new ServerFlagReader.ChangeListener() {
                @Override
                public void onChange() {
                    mRestarter.restartSystemUI();
                    mRestarter.restart();
                }
            };

+13 −30
Original line number Diff line number Diff line
@@ -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()
    }
}
+2 −4
Original line number Diff line number Diff line
@@ -16,7 +16,5 @@
package com.android.systemui.flags

interface Restarter {
    fun restartSystemUI()

    fun restartAndroid()
    fun restart()
}
 No newline at end of file
Loading