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

Commit acb5d60b authored by Lucas Dupin's avatar Lucas Dupin Committed by Automerger Merge Worker
Browse files

Merge "Enable overlays that are pending creation" into sc-dev am: 715ab391

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15350330

Change-Id: I4ab039963542d4e165713bc482753d7be92b5794
parents fd6205c1 715ab391
Loading
Loading
Loading
Loading
+6 −4
Original line number Original line Diff line number Diff line
@@ -197,8 +197,10 @@ public class ThemeOverlayApplier implements Dumpable {
                    .collect(Collectors.toList());
                    .collect(Collectors.toList());


            OverlayManagerTransaction.Builder transaction = getTransactionBuilder();
            OverlayManagerTransaction.Builder transaction = getTransactionBuilder();
            HashSet<OverlayIdentifier> identifiersPending = new HashSet<>();
            if (pendingCreation != null) {
            if (pendingCreation != null) {
                for (FabricatedOverlay overlay : pendingCreation) {
                for (FabricatedOverlay overlay : pendingCreation) {
                    identifiersPending.add(overlay.getIdentifier());
                    transaction.registerFabricatedOverlay(overlay);
                    transaction.registerFabricatedOverlay(overlay);
                }
                }
            }
            }
@@ -206,14 +208,14 @@ public class ThemeOverlayApplier implements Dumpable {
            for (Pair<String, String> packageToDisable : overlaysToDisable) {
            for (Pair<String, String> packageToDisable : overlaysToDisable) {
                OverlayIdentifier overlayInfo = new OverlayIdentifier(packageToDisable.second);
                OverlayIdentifier overlayInfo = new OverlayIdentifier(packageToDisable.second);
                setEnabled(transaction, overlayInfo, packageToDisable.first, currentUser,
                setEnabled(transaction, overlayInfo, packageToDisable.first, currentUser,
                        managedProfiles, false);
                        managedProfiles, false, identifiersPending.contains(overlayInfo));
            }
            }


            for (String category : THEME_CATEGORIES) {
            for (String category : THEME_CATEGORIES) {
                if (categoryToPackage.containsKey(category)) {
                if (categoryToPackage.containsKey(category)) {
                    OverlayIdentifier overlayInfo = categoryToPackage.get(category);
                    OverlayIdentifier overlayInfo = categoryToPackage.get(category);
                    setEnabled(transaction, overlayInfo, category, currentUser, managedProfiles,
                    setEnabled(transaction, overlayInfo, category, currentUser, managedProfiles,
                            true);
                            true, identifiersPending.contains(overlayInfo));
                }
                }
            }
            }


@@ -233,7 +235,7 @@ public class ThemeOverlayApplier implements Dumpable {
    @AnyThread
    @AnyThread
    private void setEnabled(OverlayManagerTransaction.Builder transaction,
    private void setEnabled(OverlayManagerTransaction.Builder transaction,
            OverlayIdentifier identifier, String category, int currentUser,
            OverlayIdentifier identifier, String category, int currentUser,
            Set<UserHandle> managedProfiles, boolean enabled) {
            Set<UserHandle> managedProfiles, boolean enabled, boolean pendingCreation) {
        if (DEBUG) {
        if (DEBUG) {
            Log.d(TAG, "setEnabled: " + identifier.getPackageName() + " category: "
            Log.d(TAG, "setEnabled: " + identifier.getPackageName() + " category: "
                    + category + ": " + enabled);
                    + category + ": " + enabled);
@@ -241,7 +243,7 @@ public class ThemeOverlayApplier implements Dumpable {


        OverlayInfo overlayInfo = mOverlayManager.getOverlayInfo(identifier,
        OverlayInfo overlayInfo = mOverlayManager.getOverlayInfo(identifier,
                UserHandle.of(currentUser));
                UserHandle.of(currentUser));
        if (overlayInfo == null) {
        if (overlayInfo == null && !pendingCreation) {
            Log.i(TAG, "Won't enable " + identifier + ", it doesn't exist for user"
            Log.i(TAG, "Won't enable " + identifier + ", it doesn't exist for user"
                    + currentUser);
                    + currentUser);
            return;
            return;