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

Commit d23316bc authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Android (Google) Code Review
Browse files

Merge "Maybe fix issue #3358322: Status and nav bar died while watching youtube" into honeycomb

parents c8c3021a 83a6f450
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1551,11 +1551,13 @@ public final class ViewRoot extends Handler implements ViewParent,
                Log.e(TAG, "OutOfResourcesException locking surface", e);
                // TODO: we should ask the window manager to do something!
                // for now we just do nothing
                mLayoutRequested = true;    // ask wm for a new surface next time.
                return;
            } catch (IllegalArgumentException e) {
                Log.e(TAG, "IllegalArgumentException locking surface", e);
                // TODO: we should ask the window manager to do something!
                // for now we just do nothing
                mLayoutRequested = true;    // ask wm for a new surface next time.
                return;
            }

+30 −22
Original line number Diff line number Diff line
@@ -11944,28 +11944,6 @@ public final class ActivityManagerService extends ActivityManagerNative
            adj = FOREGROUND_APP_ADJ;
            schedGroup = Process.THREAD_GROUP_DEFAULT;
            app.adjType = "exec-service";
        } else if (app.foregroundServices) {
            // The user is aware of this app, so make it visible.
            adj = PERCEPTIBLE_APP_ADJ;
            schedGroup = Process.THREAD_GROUP_DEFAULT;
            app.adjType = "foreground-service";
        } else if (app.forcingToForeground != null) {
            // The user is aware of this app, so make it visible.
            adj = PERCEPTIBLE_APP_ADJ;
            schedGroup = Process.THREAD_GROUP_DEFAULT;
            app.adjType = "force-foreground";
            app.adjSource = app.forcingToForeground;
        } else if (app == mHeavyWeightProcess) {
            // We don't want to kill the current heavy-weight process.
            adj = HEAVY_WEIGHT_APP_ADJ;
            schedGroup = Process.THREAD_GROUP_BG_NONINTERACTIVE;
            app.adjType = "heavy";
        } else if (app == mHomeProcess) {
            // This process is hosting what we currently consider to be the
            // home app, so we don't want to let it go into the background.
            adj = HOME_APP_ADJ;
            schedGroup = Process.THREAD_GROUP_BG_NONINTERACTIVE;
            app.adjType = "home";
        } else if ((N=app.activities.size()) != 0) {
            // This app is in the background with paused activities.
            app.hidden = true;
@@ -11999,6 +11977,36 @@ public final class ActivityManagerService extends ActivityManagerNative
            app.adjType = "bg-empty";
        }
        
        if (adj > PERCEPTIBLE_APP_ADJ) {
            if (app.foregroundServices) {
                // The user is aware of this app, so make it visible.
                adj = PERCEPTIBLE_APP_ADJ;
                schedGroup = Process.THREAD_GROUP_DEFAULT;
                app.adjType = "foreground-service";
            } else if (app.forcingToForeground != null) {
                // The user is aware of this app, so make it visible.
                adj = PERCEPTIBLE_APP_ADJ;
                schedGroup = Process.THREAD_GROUP_DEFAULT;
                app.adjType = "force-foreground";
                app.adjSource = app.forcingToForeground;
            }
        }
        
        if (adj > HEAVY_WEIGHT_APP_ADJ && app == mHeavyWeightProcess) {
            // We don't want to kill the current heavy-weight process.
            adj = HEAVY_WEIGHT_APP_ADJ;
            schedGroup = Process.THREAD_GROUP_BG_NONINTERACTIVE;
            app.adjType = "heavy";
        }
        if (adj > HOME_APP_ADJ && app == mHomeProcess) {
            // This process is hosting what we currently consider to be the
            // home app, so we don't want to let it go into the background.
            adj = HOME_APP_ADJ;
            schedGroup = Process.THREAD_GROUP_BG_NONINTERACTIVE;
            app.adjType = "home";
        }
        
        //Slog.i(TAG, "OOM " + app + ": initial adj=" + adj);
        
        // By default, we use the computed adjustment.  It may be changed if