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

Commit 2a6c4af5 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add overlayPaths to ApplicationInfo" into sc-dev am: 419f4eeb

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I03e3d6597d8a1f329faab00b8ad018b0124bff57
parents 3919eed5 419f4eeb
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -77,7 +77,7 @@ public class ResourcesManagerPerfTest {
    }
    }


    private void getResourcesForPath(String path) {
    private void getResourcesForPath(String path) {
        ResourcesManager.getInstance().getResources(null, path, null, null, null,
        ResourcesManager.getInstance().getResources(null, path, null, null, null, null,
                Display.DEFAULT_DISPLAY, null, sContext.getResources().getCompatibilityInfo(),
                Display.DEFAULT_DISPLAY, null, sContext.getResources().getCompatibilityInfo(),
                null, null);
                null, null);
    }
    }
+3 −2
Original line number Original line Diff line number Diff line
@@ -95,8 +95,9 @@ public class ResourcesThemePerfTest {
                ? Configuration.ORIENTATION_LANDSCAPE : Configuration.ORIENTATION_PORTRAIT;
                ? Configuration.ORIENTATION_LANDSCAPE : Configuration.ORIENTATION_PORTRAIT;


        Resources destResources = resourcesManager.getResources(null, ai.sourceDir,
        Resources destResources = resourcesManager.getResources(null, ai.sourceDir,
                ai.splitSourceDirs, ai.resourceDirs, ai.sharedLibraryFiles, Display.DEFAULT_DISPLAY,
                ai.splitSourceDirs, ai.resourceDirs, ai.overlayPaths, ai.sharedLibraryFiles,
                c, mContext.getResources().getCompatibilityInfo(), null, null);
                Display.DEFAULT_DISPLAY, c, mContext.getResources().getCompatibilityInfo(),
                null, null);
        Assert.assertNotEquals(destResources.getAssets(), mContext.getAssets());
        Assert.assertNotEquals(destResources.getAssets(), mContext.getAssets());


        Resources.Theme destTheme = destResources.newTheme();
        Resources.Theme destTheme = destResources.newTheme();
+13 −9
Original line number Original line Diff line number Diff line
@@ -2289,11 +2289,12 @@ public final class ActivityThread extends ClientTransactionHandler {
     * Creates the top level resources for the given package. Will return an existing
     * Creates the top level resources for the given package. Will return an existing
     * Resources if one has already been created.
     * Resources if one has already been created.
     */
     */
    Resources getTopLevelResources(String resDir, String[] splitResDirs, String[] overlayDirs,
    Resources getTopLevelResources(String resDir, String[] splitResDirs, String[] legacyOverlayDirs,
            String[] libDirs, LoadedApk pkgInfo, Configuration overrideConfig) {
                    String[] overlayPaths, String[] libDirs, LoadedApk pkgInfo,
        return mResourcesManager.getResources(null, resDir, splitResDirs, overlayDirs, libDirs,
                    Configuration overrideConfig) {
                null, overrideConfig, pkgInfo.getCompatibilityInfo(), pkgInfo.getClassLoader(),
        return mResourcesManager.getResources(null, resDir, splitResDirs, legacyOverlayDirs,
                null);
                overlayPaths, libDirs, null, overrideConfig, pkgInfo.getCompatibilityInfo(),
                pkgInfo.getClassLoader(), null);
    }
    }


    @UnsupportedAppUsage
    @UnsupportedAppUsage
@@ -2462,12 +2463,15 @@ public final class ActivityThread extends ClientTransactionHandler {
    private static boolean isLoadedApkResourceDirsUpToDate(LoadedApk loadedApk,
    private static boolean isLoadedApkResourceDirsUpToDate(LoadedApk loadedApk,
            ApplicationInfo appInfo) {
            ApplicationInfo appInfo) {
        Resources packageResources = loadedApk.mResources;
        Resources packageResources = loadedApk.mResources;
        String[] overlayDirs = ArrayUtils.defeatNullable(loadedApk.getOverlayDirs());
        boolean resourceDirsUpToDate = Arrays.equals(
        String[] resourceDirs = ArrayUtils.defeatNullable(appInfo.resourceDirs);
                ArrayUtils.defeatNullable(appInfo.resourceDirs),
                ArrayUtils.defeatNullable(loadedApk.getOverlayDirs()));
        boolean overlayPathsUpToDate = Arrays.equals(
                ArrayUtils.defeatNullable(appInfo.overlayPaths),
                ArrayUtils.defeatNullable(loadedApk.getOverlayPaths()));


        return (packageResources == null || packageResources.getAssets().isUpToDate())
        return (packageResources == null || packageResources.getAssets().isUpToDate())
                && overlayDirs.length == resourceDirs.length
                && resourceDirsUpToDate && overlayPathsUpToDate;
                && ArrayUtils.containsAll(overlayDirs, resourceDirs);
    }
    }


    @UnsupportedAppUsage
    @UnsupportedAppUsage
+1 −1
Original line number Original line Diff line number Diff line
@@ -1728,7 +1728,7 @@ public class ApplicationPackageManager extends PackageManager {
        final Resources r = mContext.mMainThread.getTopLevelResources(
        final Resources r = mContext.mMainThread.getTopLevelResources(
                sameUid ? app.sourceDir : app.publicSourceDir,
                sameUid ? app.sourceDir : app.publicSourceDir,
                sameUid ? app.splitSourceDirs : app.splitPublicSourceDirs,
                sameUid ? app.splitSourceDirs : app.splitPublicSourceDirs,
                app.resourceDirs, app.sharedLibraryFiles,
                app.resourceDirs, app.overlayPaths, app.sharedLibraryFiles,
                mContext.mPackageInfo, configuration);
                mContext.mPackageInfo, configuration);
        if (r != null) {
        if (r != null) {
            return r;
            return r;
+6 −2
Original line number Original line Diff line number Diff line
@@ -2345,6 +2345,7 @@ class ContextImpl extends Context {
                pi.getResDir(),
                pi.getResDir(),
                splitResDirs,
                splitResDirs,
                pi.getOverlayDirs(),
                pi.getOverlayDirs(),
                pi.getOverlayPaths(),
                pi.getApplicationInfo().sharedLibraryFiles,
                pi.getApplicationInfo().sharedLibraryFiles,
                overrideDisplayId,
                overrideDisplayId,
                overrideConfig,
                overrideConfig,
@@ -2442,6 +2443,7 @@ class ContextImpl extends Context {
                mPackageInfo.getResDir(),
                mPackageInfo.getResDir(),
                paths,
                paths,
                mPackageInfo.getOverlayDirs(),
                mPackageInfo.getOverlayDirs(),
                mPackageInfo.getOverlayPaths(),
                mPackageInfo.getApplicationInfo().sharedLibraryFiles,
                mPackageInfo.getApplicationInfo().sharedLibraryFiles,
                mForceDisplayOverrideInResources ? getDisplayId() : null,
                mForceDisplayOverrideInResources ? getDisplayId() : null,
                null,
                null,
@@ -2558,7 +2560,8 @@ class ContextImpl extends Context {
    Resources createWindowContextResources() {
    Resources createWindowContextResources() {
        final String resDir = mPackageInfo.getResDir();
        final String resDir = mPackageInfo.getResDir();
        final String[] splitResDirs = mPackageInfo.getSplitResDirs();
        final String[] splitResDirs = mPackageInfo.getSplitResDirs();
        final String[] overlayDirs = mPackageInfo.getOverlayDirs();
        final String[] legacyOverlayDirs = mPackageInfo.getOverlayDirs();
        final String[] overlayPaths = mPackageInfo.getOverlayPaths();
        final String[] libDirs = mPackageInfo.getApplicationInfo().sharedLibraryFiles;
        final String[] libDirs = mPackageInfo.getApplicationInfo().sharedLibraryFiles;
        final int displayId = getDisplayId();
        final int displayId = getDisplayId();
        final CompatibilityInfo compatInfo = (displayId == Display.DEFAULT_DISPLAY)
        final CompatibilityInfo compatInfo = (displayId == Display.DEFAULT_DISPLAY)
@@ -2567,7 +2570,7 @@ class ContextImpl extends Context {
        final List<ResourcesLoader> loaders = mResources.getLoaders();
        final List<ResourcesLoader> loaders = mResources.getLoaders();


        return mResourcesManager.createBaseTokenResources(mToken, resDir, splitResDirs,
        return mResourcesManager.createBaseTokenResources(mToken, resDir, splitResDirs,
                overlayDirs, libDirs, displayId, null /* overrideConfig */,
                legacyOverlayDirs, overlayPaths, libDirs, displayId, null /* overrideConfig */,
                compatInfo, mClassLoader, loaders);
                compatInfo, mClassLoader, loaders);
    }
    }


@@ -2855,6 +2858,7 @@ class ContextImpl extends Context {
                packageInfo.getResDir(),
                packageInfo.getResDir(),
                splitDirs,
                splitDirs,
                packageInfo.getOverlayDirs(),
                packageInfo.getOverlayDirs(),
                packageInfo.getOverlayPaths(),
                packageInfo.getApplicationInfo().sharedLibraryFiles,
                packageInfo.getApplicationInfo().sharedLibraryFiles,
                displayId,
                displayId,
                overrideConfiguration,
                overrideConfiguration,
Loading