From c97019422e8520205ecf49a47d9057d0e069f207 Mon Sep 17 00:00:00 2001 From: Adam Lesinski Date: Mon, 28 Nov 2016 19:44:19 -0800 Subject: [PATCH] Fix CTS breakage in Context and Override configurations The base Activity resources need to be created differently so that other configuration contexts can be rebased properly. Bug:33166230 Test: cts-tradefed run cts --module CtsAndroidAppTestCases --test android.app.cts.ApplyOverrideConfigurationTests Change-Id: I86def4e2414dc366dd1d5cbc9104c5d0c06a4d61 --- core/java/android/app/ContextImpl.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index b8540f89a94fa..5f706dcf8fb16 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -2064,9 +2064,20 @@ class ContextImpl extends Context { ? packageInfo.getCompatibilityInfo() : CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO; - context.mResources = createResources(activityToken, packageInfo, displayId, - overrideConfiguration, compatInfo); - context.mDisplay = ResourcesManager.getInstance().getAdjustedDisplay(displayId, + final ResourcesManager resourcesManager = ResourcesManager.getInstance(); + + // Create the base resources for which all configuration contexts for this Activity + // will be rebased upon. + context.mResources = resourcesManager.createBaseActivityResources(activityToken, + packageInfo.getResDir(), + packageInfo.getSplitResDirs(), + packageInfo.getOverlayDirs(), + packageInfo.getApplicationInfo().sharedLibraryFiles, + displayId, + overrideConfiguration, + compatInfo, + packageInfo.getClassLoader()); + context.mDisplay = resourcesManager.getAdjustedDisplay(displayId, context.mResources.getDisplayAdjustments()); return context; }