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

Commit 7064c019 authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Vikas Marwaha
Browse files

Fix issue #25727069: Top sleeping activity overrides foreground service

Change-Id: I9a085cd650604f9d6277ad343bf3c3852324cafc
parent daf6bdba
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -17747,7 +17747,7 @@ public final class ActivityManagerService extends ActivityManagerNative
        app.systemNoUi = false;
        final int PROCESS_STATE_TOP = mTopProcessState;
        final int PROCESS_STATE_CUR_TOP = mTopProcessState;
        // Determine the importance of the process, starting with most
        // important to least, and assign an appropriate OOM adjustment.
@@ -17762,7 +17762,7 @@ public final class ActivityManagerService extends ActivityManagerNative
            schedGroup = Process.THREAD_GROUP_DEFAULT;
            app.adjType = "top-activity";
            foregroundActivities = true;
            procState = PROCESS_STATE_TOP;
            procState = PROCESS_STATE_CUR_TOP;
        } else if (app.instrumentationClass != null) {
            // Don't want to kill running instrumentation.
            adj = ProcessList.FOREGROUND_APP_ADJ;
@@ -17815,8 +17815,8 @@ public final class ActivityManagerService extends ActivityManagerNative
                        adj = ProcessList.VISIBLE_APP_ADJ;
                        app.adjType = "visible";
                    }
                    if (procState > PROCESS_STATE_TOP) {
                        procState = PROCESS_STATE_TOP;
                    if (procState > PROCESS_STATE_CUR_TOP) {
                        procState = PROCESS_STATE_CUR_TOP;
                    }
                    schedGroup = Process.THREAD_GROUP_DEFAULT;
                    app.cached = false;
@@ -17828,8 +17828,8 @@ public final class ActivityManagerService extends ActivityManagerNative
                        adj = ProcessList.PERCEPTIBLE_APP_ADJ;
                        app.adjType = "pausing";
                    }
                    if (procState > PROCESS_STATE_TOP) {
                        procState = PROCESS_STATE_TOP;
                    if (procState > PROCESS_STATE_CUR_TOP) {
                        procState = PROCESS_STATE_CUR_TOP;
                    }
                    schedGroup = Process.THREAD_GROUP_DEFAULT;
                    app.cached = false;
@@ -17864,7 +17864,8 @@ public final class ActivityManagerService extends ActivityManagerNative
            }
        }
        if (adj > ProcessList.PERCEPTIBLE_APP_ADJ) {
        if (adj > ProcessList.PERCEPTIBLE_APP_ADJ
                || procState > ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE) {
            if (app.foregroundServices) {
                // The user is aware of this app, so make it visible.
                adj = ProcessList.PERCEPTIBLE_APP_ADJ;