Merge "Migrate the usage of sUseRoundIcon to PackageParserUtils" into sc-dev

This commit is contained in:
Jackal Guo
2021-03-26 08:01:07 +00:00
committed by Android (Google) Code Review
3 changed files with 43 additions and 3 deletions

View File

@@ -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;
@@ -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;
@@ -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.

View File

@@ -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;
@@ -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;
@@ -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);

View File

@@ -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);