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

Commit 0e9feb76 authored by Winson's avatar Winson
Browse files

Notify overlays changed when target package upgraded

Per linked bug, when a target package is upgraded, the overlays are not refreshed. This means the PixelThemeOverlay was never added back for the targeted app and wasn't loaded into AssetManager.

This is a regression originally introduced by ag/3986153, reverted, and again introduced in ag/4032433. The code went back and forth several times, but essentially `onOverlaysChanged` must be called somewhere inside `onTargetChanged`, `onTargetUpgrading`, or `onTargetUpgraded`. Through a series of CLs, all those cases ended up being removed.

`onTargetUpgraded` was chosen in this CL because it is called less frequently than `onTargetChanged` and after `onTargetUpgrading`, to prevent extra unncessary calls.

Bug: 122641077

Test: fix with Wellbeing on P
Test: fix with Wellbeing on Q
Test: verified exact upgrade steps on linked bug on P

Change-Id: I1ac4d67c318102d466dfcc1529c8a3f81ec91acb
parent 34478fc9
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -270,7 +270,9 @@ final class OverlayManagerServiceImpl {
            Slog.d(TAG, "onTargetPackageUpgraded packageName=" + packageName + " userId=" + userId);
        }

        updateAllOverlaysForTarget(packageName, userId, 0);
        if (updateAllOverlaysForTarget(packageName, userId, 0)) {
            mListener.onOverlaysChanged(packageName, userId);
        }
    }

    void onTargetPackageRemoved(@NonNull final String packageName, final int userId) {