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

Commit 654c21ce authored by Daniel Chapin's avatar Daniel Chapin Committed by Automerger Merge Worker
Browse files

Merge "Prioritize delivering broadcasts to apps with fg activities." into udc-dev am: f0f952bb

parents 7666981a f0f952bb
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -864,6 +864,7 @@ class BroadcastProcessQueue {
    static final int REASON_CONTAINS_RESULT_TO = 15;
    static final int REASON_CONTAINS_INSTRUMENTED = 16;
    static final int REASON_CONTAINS_MANIFEST = 17;
    static final int REASON_FOREGROUND_ACTIVITIES = 18;

    @IntDef(flag = false, prefix = { "REASON_" }, value = {
            REASON_EMPTY,
@@ -883,6 +884,7 @@ class BroadcastProcessQueue {
            REASON_CONTAINS_RESULT_TO,
            REASON_CONTAINS_INSTRUMENTED,
            REASON_CONTAINS_MANIFEST,
            REASON_FOREGROUND_ACTIVITIES,
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface Reason {}
@@ -906,6 +908,7 @@ class BroadcastProcessQueue {
            case REASON_CONTAINS_RESULT_TO: return "CONTAINS_RESULT_TO";
            case REASON_CONTAINS_INSTRUMENTED: return "CONTAINS_INSTRUMENTED";
            case REASON_CONTAINS_MANIFEST: return "CONTAINS_MANIFEST";
            case REASON_FOREGROUND_ACTIVITIES: return "FOREGROUND_ACTIVITIES";
            default: return Integer.toString(reason);
        }
    }
@@ -963,6 +966,11 @@ class BroadcastProcessQueue {
            } else if (mProcessInstrumented) {
                mRunnableAt = runnableAt + constants.DELAY_URGENT_MILLIS;
                mRunnableAtReason = REASON_INSTRUMENTED;
            } else if (app != null && app.hasForegroundActivities()) {
                // TODO: Listen for uid state changes to check when an uid goes in and out of
                // the TOP state.
                mRunnableAt = runnableAt + constants.DELAY_URGENT_MILLIS;
                mRunnableAtReason = REASON_FOREGROUND_ACTIVITIES;
            } else if (mCountOrdered > 0) {
                mRunnableAt = runnableAt;
                mRunnableAtReason = REASON_CONTAINS_ORDERED;
+5 −0
Original line number Diff line number Diff line
@@ -1050,6 +1050,11 @@ class ProcessRecord implements WindowProcessListener {
        return mState.isCached();
    }

    @GuardedBy(anyOf = {"mService", "mProcLock"})
    public boolean hasForegroundActivities() {
        return mState.hasForegroundActivities();
    }

    boolean hasActivities() {
        return mWindowProcessController.hasActivities();
    }