@@ -68,6 +68,11 @@ final class OverlayManagerServiceImpl {
6868 mListener = listener ;
6969 }
7070
71+ private static boolean isPackageStaticOverlay (final PackageInfo packageInfo ) {
72+ return packageInfo .overlayTarget != null
73+ && (packageInfo .overlayFlags & PackageInfo .FLAG_OVERLAY_STATIC ) != 0 ;
74+ }
75+
7176 /**
7277 * Call this to synchronize the Settings for a user with what PackageManager knows about a user.
7378 * Returns a list of target packages that must refresh their overlays. This list is the union
@@ -102,11 +107,11 @@ ArrayList<String> updateOverlaysForUser(final int newUserId) {
102107 mSettings .init (overlayPackage .packageName , newUserId ,
103108 overlayPackage .overlayTarget ,
104109 overlayPackage .applicationInfo .getBaseCodePath (),
105- overlayPackage . isStaticOverlay , overlayPackage .overlayPriority );
110+ isPackageStaticOverlay ( overlayPackage ) , overlayPackage .overlayPriority );
106111
107112 if (oi == null ) {
108113 // This overlay does not exist in our settings.
109- if (overlayPackage . isStaticOverlay ||
114+ if (isPackageStaticOverlay ( overlayPackage ) ||
110115 mDefaultOverlays .contains (overlayPackage .packageName )) {
111116 // Enable this overlay by default.
112117 if (DEBUG ) {
@@ -255,8 +260,8 @@ void onOverlayPackageAdded(@NonNull final String packageName, final int userId)
255260 mPackageManager .getPackageInfo (overlayPackage .overlayTarget , userId );
256261
257262 mSettings .init (packageName , userId , overlayPackage .overlayTarget ,
258- overlayPackage .applicationInfo .getBaseCodePath (), overlayPackage . isStaticOverlay ,
259- overlayPackage .overlayPriority );
263+ overlayPackage .applicationInfo .getBaseCodePath (),
264+ isPackageStaticOverlay ( overlayPackage ), overlayPackage .overlayPriority );
260265 try {
261266 if (updateState (targetPackage , overlayPackage , userId )) {
262267 mListener .onOverlaysChanged (overlayPackage .overlayTarget , userId );
@@ -313,7 +318,7 @@ boolean setEnabled(@NonNull final String packageName, final boolean enable,
313318 }
314319
315320 // Ignore static overlays.
316- if (overlayPackage . isStaticOverlay ) {
321+ if (isPackageStaticOverlay ( overlayPackage ) ) {
317322 return false ;
318323 }
319324
@@ -363,7 +368,7 @@ boolean setEnabledExclusive(@NonNull final String packageName, final int userId)
363368 continue ;
364369 }
365370
366- if (disabledOverlayPackageInfo . isStaticOverlay ) {
371+ if (isPackageStaticOverlay ( disabledOverlayPackageInfo ) ) {
367372 // Don't touch static overlays.
368373 continue ;
369374 }
@@ -388,7 +393,7 @@ boolean setEnabledExclusive(@NonNull final String packageName, final int userId)
388393
389394 private boolean isPackageUpdatableOverlay (@ NonNull final String packageName , final int userId ) {
390395 final PackageInfo overlayPackage = mPackageManager .getPackageInfo (packageName , userId );
391- if (overlayPackage == null || overlayPackage . isStaticOverlay ) {
396+ if (overlayPackage == null || isPackageStaticOverlay ( overlayPackage ) ) {
392397 return false ;
393398 }
394399 return true ;
@@ -483,7 +488,8 @@ private boolean updateState(@Nullable final PackageInfo targetPackage,
483488 throws OverlayManagerSettings .BadKeyException {
484489 // Static RROs targeting to "android", ie framework-res.apk, are handled by native layers.
485490 if (targetPackage != null &&
486- !("android" .equals (targetPackage .packageName ) && overlayPackage .isStaticOverlay )) {
491+ !("android" .equals (targetPackage .packageName )
492+ && isPackageStaticOverlay (overlayPackage ))) {
487493 mIdmapManager .createIdmap (targetPackage , overlayPackage , userId );
488494 }
489495
0 commit comments