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

Commit a62a68db authored by Jackal Guo's avatar Jackal Guo Committed by Android (Google) Code Review
Browse files

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

parents ef688bbd 755cecda
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
@@ -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.

+2 −2
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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);