diff --git a/core/java/android/content/res/ResourcesKey.java b/core/java/android/content/res/ResourcesKey.java index 64b6bf1b6dcd3..b03ed1eee7685 100644 --- a/core/java/android/content/res/ResourcesKey.java +++ b/core/java/android/content/res/ResourcesKey.java @@ -59,7 +59,8 @@ public final class ResourcesKey { mOverlayDirs = overlayDirs; mLibDirs = libDirs; mDisplayId = displayId; - mOverrideConfiguration = overrideConfig != null ? overrideConfig : Configuration.EMPTY; + mOverrideConfiguration = new Configuration(overrideConfig != null + ? overrideConfig : Configuration.EMPTY); mCompatInfo = compatInfo != null ? compatInfo : CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO; int hash = 17; diff --git a/core/java/android/view/DisplayAdjustments.java b/core/java/android/view/DisplayAdjustments.java index dd86062f2d1d2..790029b9c09f8 100644 --- a/core/java/android/view/DisplayAdjustments.java +++ b/core/java/android/view/DisplayAdjustments.java @@ -26,18 +26,20 @@ public class DisplayAdjustments { public static final DisplayAdjustments DEFAULT_DISPLAY_ADJUSTMENTS = new DisplayAdjustments(); private volatile CompatibilityInfo mCompatInfo = CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO; - private Configuration mConfiguration = Configuration.EMPTY; + private Configuration mConfiguration; public DisplayAdjustments() { } public DisplayAdjustments(Configuration configuration) { - mConfiguration = configuration; + mConfiguration = new Configuration(configuration != null + ? configuration : Configuration.EMPTY); } public DisplayAdjustments(DisplayAdjustments daj) { setCompatibilityInfo(daj.mCompatInfo); - mConfiguration = daj.mConfiguration; + mConfiguration = new Configuration(daj.mConfiguration != null + ? daj.mConfiguration : Configuration.EMPTY); } public void setCompatibilityInfo(CompatibilityInfo compatInfo) { @@ -62,7 +64,7 @@ public class DisplayAdjustments { throw new IllegalArgumentException( "setConfiguration: Cannot modify DEFAULT_DISPLAY_ADJUSTMENTS"); } - mConfiguration = configuration != null ? configuration : Configuration.EMPTY; + mConfiguration.setTo(configuration != null ? configuration : Configuration.EMPTY); } public Configuration getConfiguration() { diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java index 77626975c385b..77d0db3bff246 100644 --- a/services/core/java/com/android/server/am/TaskRecord.java +++ b/services/core/java/com/android/server/am/TaskRecord.java @@ -1558,8 +1558,8 @@ final class TaskRecord extends ConfigurationContainer { } /** Clears passed config and fills it with new override values. */ - private Configuration calculateOverrideConfig(Configuration config, Rect bounds, - Rect insetBounds, boolean overrideWidth, boolean overrideHeight) { + private void calculateOverrideConfig(Configuration config, Rect bounds, Rect insetBounds, + boolean overrideWidth, boolean overrideHeight) { mTmpNonDecorBounds.set(bounds); mTmpStableBounds.set(bounds); subtractNonDecorInsets( @@ -1599,7 +1599,6 @@ final class TaskRecord extends ConfigurationContainer { config.smallestScreenWidthDp = mService.mWindowManager.getSmallestWidthForTaskBounds( insetBounds != null ? insetBounds : bounds); - return config; } /** diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 7febaf659f828..b8b16d5acdce2 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -2735,7 +2735,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } - if (overrideConfig != null && overrideConfig != EMPTY) { + if (overrideConfig != null && !overrideConfig.equals(EMPTY)) { if (DEBUG_STARTING_WINDOW) Slog.d(TAG, "addStartingWindow: creating context based" + " on overrideConfig" + overrideConfig + " for starting window"); final Context overrideContext = context.createConfigurationContext(overrideConfig);