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

Commit cac5c681 authored by Hai Zhang's avatar Hai Zhang
Browse files

Only update default home when the preferred home activity is modified.

To avoid the race condition when other preferred activities are being
configured while home role is being set.

Fixes: 178191941
Test: presubmit
Change-Id: Ie9b4c46b6d75078dd29fffe436306b10034005d2
parent fac4949f
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -22015,7 +22015,7 @@ public class PackageManagerService extends IPackageManager.Stub
            pir.addFilter(new PreferredActivity(filter, match, set, activity, always));
            scheduleWritePackageRestrictionsLocked(userId);
        }
        if (!updateDefaultHomeNotLocked(userId)) {
        if (!(isHomeFilter(filter) && updateDefaultHomeNotLocked(userId))) {
            postPreferredActivityChangedBroadcast(userId);
        }
    }
@@ -22272,7 +22272,9 @@ public class PackageManagerService extends IPackageManager.Stub
                    new PersistentPreferredActivity(filter, activity, true));
            scheduleWritePackageRestrictionsLocked(userId);
        }
        if (isHomeFilter(filter)) {
            updateDefaultHomeNotLocked(userId);
        }
        postPreferredActivityChangedBroadcast(userId);
    }
@@ -22609,6 +22611,11 @@ public class PackageManagerService extends IPackageManager.Stub
        return filter;
    }
    private boolean isHomeFilter(@NonNull IntentFilter filter) {
        return filter.hasAction(Intent.ACTION_MAIN) && filter.hasCategory(Intent.CATEGORY_HOME)
                && filter.hasCategory(CATEGORY_DEFAULT);
    }
    ComponentName getHomeActivitiesAsUser(List<ResolveInfo> allHomeCandidates,
            int userId) {
        return liveComputer().getHomeActivitiesAsUser(allHomeCandidates,