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

Commit 1fb786ca authored by Brandon Liu's avatar Brandon Liu
Browse files

Skip real action when onStartUser() called for the same user not on the

first time

Bug: b/291217867
Test: Verified all affected tests pass
Change-Id: I8508013d654fa30b9b10fec83e728ddc5f7cfbdb
parent 7382dcb3
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -261,6 +261,8 @@ public final class OverlayManagerService extends SystemService {

    private final OverlayActorEnforcer mActorEnforcer;

    private int mPrevStartedUserId = -1;

    public OverlayManagerService(@NonNull final Context context) {
        super(context);
        try {
@@ -338,6 +340,10 @@ public final class OverlayManagerService extends SystemService {
    }

    private void onStartUser(@UserIdInt int newUserId) {
        // Do nothing when start a user that is the same as the one started previously.
        if (newUserId == mPrevStartedUserId) {
            return;
        }
        try {
            traceBegin(TRACE_TAG_RRO, "OMS#onStartUser " + newUserId);
            // ensure overlays in the settings are up-to-date, and propagate
@@ -348,6 +354,7 @@ public final class OverlayManagerService extends SystemService {
        } finally {
            traceEnd(TRACE_TAG_RRO);
        }
        mPrevStartedUserId = newUserId;
    }

    private static String[] getDefaultOverlayPackages() {