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

Commit 20a3ee74 authored by Jackal Guo's avatar Jackal Guo Committed by Automerger Merge Worker
Browse files

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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13975111

Change-Id: I7cb00d2e4304a06415c88a226e86ad1fb4d7e3a0
parents af627231 a62a68db
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);