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

Commit 0619545b authored by Wale Ogunwale's avatar Wale Ogunwale
Browse files

Don't re-launch activities while the device is sleeping

- Don't ensure configuration for top running activity that is in the
stopped state if the configuration change while the device is sleeping
as we don't want to relaunch activities in this state.
- Don't make activities visible while the device is sleeping and the
activity isn't in voice interaction mode. Making it visible can also
lead to the activity been relaunched due to configuration changing.

Note the the right configuration will be applied to the activity the next
time we try to make it visible. The re-launch will happen then.

Bug: 28518380
Change-Id: Ic22193db645dec358065cb05e7f1afc6fc8ac49f
parent 43f6a45e
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -18714,7 +18714,7 @@ public final class ActivityManagerService extends ActivityManagerNative
                starting = mainStack.topRunningActivityLocked();
                starting = mainStack.topRunningActivityLocked();
            }
            }
            if (starting != null) {
            if (starting != null && starting.state != ActivityState.STOPPED) {
                kept = mainStack.ensureActivityConfigurationLocked(starting, changes, false);
                kept = mainStack.ensureActivityConfigurationLocked(starting, changes, false);
                // And we need to make sure at this point that all other activities
                // And we need to make sure at this point that all other activities
                // are made visible with the correct configuration.
                // are made visible with the correct configuration.
+2 −1
Original line number Original line Diff line number Diff line
@@ -1820,7 +1820,8 @@ final class ActivityStack {
            boolean stackVisibleBehind, ActivityRecord visibleBehind,
            boolean stackVisibleBehind, ActivityRecord visibleBehind,
            boolean behindFullscreenActivity) {
            boolean behindFullscreenActivity) {


        if (!okToShowLocked(r)) {
        if (!okToShowLocked(r)
                || (mService.isSleepingOrShuttingDown() && r.voiceSession == null)) {
            return false;
            return false;
        }
        }