From 5dbcb8a6bb03791f89a2c02e5e91ff31ff841a7c Mon Sep 17 00:00:00 2001 From: Jaekyun Seok Date: Wed, 4 Apr 2018 11:28:21 +0900 Subject: [PATCH] Load static RROs in OverlayManagerService Only RROs targeting "android" are loaded from AssetManager, and so others should be loaded from OverlayManagerService. The RROs targeting "android" would be ingored as they are to avoid redundant loading. Bug: 76205654 Test: succeeded building and tested with taimen Change-Id: Ibeeb3c3f3338a845b2f4c485305636003d9dbd44 --- .../com/android/server/om/OverlayManagerSettings.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/om/OverlayManagerSettings.java b/services/core/java/com/android/server/om/OverlayManagerSettings.java index 863045c2aee74..e176351fcb765 100644 --- a/services/core/java/com/android/server/om/OverlayManagerSettings.java +++ b/services/core/java/com/android/server/om/OverlayManagerSettings.java @@ -179,15 +179,19 @@ final class OverlayManagerSettings { List getOverlaysForTarget(@NonNull final String targetPackageName, final int userId) { + // Static RROs targeting "android" are loaded from AssetManager, and so they should be + // ignored in OverlayManagerService. return selectWhereTarget(targetPackageName, userId) - .filter((i) -> !i.isStatic()) + .filter((i) -> !(i.isStatic() && "android".equals(i.getTargetPackageName()))) .map(SettingsItem::getOverlayInfo) .collect(Collectors.toList()); } ArrayMap> getOverlaysForUser(final int userId) { + // Static RROs targeting "android" are loaded from AssetManager, and so they should be + // ignored in OverlayManagerService. return selectWhereUser(userId) - .filter((i) -> !i.isStatic()) + .filter((i) -> !(i.isStatic() && "android".equals(i.getTargetPackageName()))) .map(SettingsItem::getOverlayInfo) .collect(Collectors.groupingBy(info -> info.targetPackageName, ArrayMap::new, Collectors.toList()));