Loading core/java/android/content/pm/parsing/ParsingPackageUtils.java +40 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.StyleableRes; import android.app.ActivityThread; import android.app.ResourcesManager; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ApplicationInfo; Loading Loading @@ -85,7 +87,9 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.FileUtils; import android.os.RemoteException; import android.os.Trace; import android.os.UserHandle; import android.os.ext.SdkExtensions; import android.permission.PermissionManager; import android.text.TextUtils; Loading Loading @@ -3043,6 +3047,42 @@ public class ParsingPackageUtils { } } /** * @hide */ public static void readConfigUseRoundIcon(Resources r) { if (r != null) { sUseRoundIcon = r.getBoolean(com.android.internal.R.bool.config_useRoundIcon); return; } final ApplicationInfo androidAppInfo; try { androidAppInfo = ActivityThread.getPackageManager().getApplicationInfo( "android", 0 /* flags */, UserHandle.myUserId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } final Resources systemResources = Resources.getSystem(); // Create in-flight as this overlayable resource is only used when config changes final Resources overlayableRes = ResourcesManager.getInstance().getResources( null /* activityToken */, null /* resDir */, null /* splitResDirs */, androidAppInfo.resourceDirs, androidAppInfo.overlayPaths, androidAppInfo.sharedLibraryFiles, null /* overrideDisplayId */, null /* overrideConfig */, systemResources.getCompatibilityInfo(), systemResources.getClassLoader(), null /* loaders */); sUseRoundIcon = overlayableRes.getBoolean(com.android.internal.R.bool.config_useRoundIcon); } /* The following set of methods makes code easier to read by re-ordering the TypedArray methods. Loading services/core/java/com/android/server/am/ActivityManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -213,7 +213,6 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManagerInternal; import android.content.pm.PackageParser; import android.content.pm.ParceledListSlice; import android.content.pm.PermissionInfo; import android.content.pm.ProcessInfo; Loading @@ -224,6 +223,7 @@ import android.content.pm.SELinuxUtil; import android.content.pm.ServiceInfo; import android.content.pm.TestUtilityService; import android.content.pm.UserInfo; import android.content.pm.parsing.ParsingPackageUtils; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.content.res.Resources; Loading Loading @@ -16289,7 +16289,7 @@ public class ActivityManagerService extends IActivityManager.Stub private void updateApplicationInfoLOSP(@NonNull List<String> packagesToUpdate, int userId) { final boolean updateFrameworkRes = packagesToUpdate.contains("android"); if (updateFrameworkRes) { PackageParser.readConfigUseRoundIcon(null); ParsingPackageUtils.readConfigUseRoundIcon(null); } mProcessList.updateApplicationInfoLOSP(packagesToUpdate, userId, updateFrameworkRes); services/core/java/com/android/server/pm/PackageManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -7121,7 +7121,7 @@ public class PackageManagerService extends IPackageManager.Stub // once we have a booted system. mInstaller.setWarnIfHeld(mLock); PackageParser.readConfigUseRoundIcon(mContext.getResources()); ParsingPackageUtils.readConfigUseRoundIcon(mContext.getResources()); mServiceStartWithDelay = SystemClock.uptimeMillis() + (60 * 1000L); Loading
core/java/android/content/pm/parsing/ParsingPackageUtils.java +40 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.StyleableRes; import android.app.ActivityThread; import android.app.ResourcesManager; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ApplicationInfo; Loading Loading @@ -85,7 +87,9 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.FileUtils; import android.os.RemoteException; import android.os.Trace; import android.os.UserHandle; import android.os.ext.SdkExtensions; import android.permission.PermissionManager; import android.text.TextUtils; Loading Loading @@ -3043,6 +3047,42 @@ public class ParsingPackageUtils { } } /** * @hide */ public static void readConfigUseRoundIcon(Resources r) { if (r != null) { sUseRoundIcon = r.getBoolean(com.android.internal.R.bool.config_useRoundIcon); return; } final ApplicationInfo androidAppInfo; try { androidAppInfo = ActivityThread.getPackageManager().getApplicationInfo( "android", 0 /* flags */, UserHandle.myUserId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } final Resources systemResources = Resources.getSystem(); // Create in-flight as this overlayable resource is only used when config changes final Resources overlayableRes = ResourcesManager.getInstance().getResources( null /* activityToken */, null /* resDir */, null /* splitResDirs */, androidAppInfo.resourceDirs, androidAppInfo.overlayPaths, androidAppInfo.sharedLibraryFiles, null /* overrideDisplayId */, null /* overrideConfig */, systemResources.getCompatibilityInfo(), systemResources.getClassLoader(), null /* loaders */); sUseRoundIcon = overlayableRes.getBoolean(com.android.internal.R.bool.config_useRoundIcon); } /* The following set of methods makes code easier to read by re-ordering the TypedArray methods. Loading
services/core/java/com/android/server/am/ActivityManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -213,7 +213,6 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManagerInternal; import android.content.pm.PackageParser; import android.content.pm.ParceledListSlice; import android.content.pm.PermissionInfo; import android.content.pm.ProcessInfo; Loading @@ -224,6 +223,7 @@ import android.content.pm.SELinuxUtil; import android.content.pm.ServiceInfo; import android.content.pm.TestUtilityService; import android.content.pm.UserInfo; import android.content.pm.parsing.ParsingPackageUtils; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.content.res.Resources; Loading Loading @@ -16289,7 +16289,7 @@ public class ActivityManagerService extends IActivityManager.Stub private void updateApplicationInfoLOSP(@NonNull List<String> packagesToUpdate, int userId) { final boolean updateFrameworkRes = packagesToUpdate.contains("android"); if (updateFrameworkRes) { PackageParser.readConfigUseRoundIcon(null); ParsingPackageUtils.readConfigUseRoundIcon(null); } mProcessList.updateApplicationInfoLOSP(packagesToUpdate, userId, updateFrameworkRes);
services/core/java/com/android/server/pm/PackageManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -7121,7 +7121,7 @@ public class PackageManagerService extends IPackageManager.Stub // once we have a booted system. mInstaller.setWarnIfHeld(mLock); PackageParser.readConfigUseRoundIcon(mContext.getResources()); ParsingPackageUtils.readConfigUseRoundIcon(mContext.getResources()); mServiceStartWithDelay = SystemClock.uptimeMillis() + (60 * 1000L);