From e610d3dba8ea96636dd58ca4baa39dc9100467fd Mon Sep 17 00:00:00 2001 From: Wale Ogunwale Date: Tue, 25 Apr 2017 10:23:48 -0700 Subject: Switch ActivityRecord last reported config. to MergeConfiguration Clean-up before actual fix for b/36897968 that makes the code easier to follow. Test: Existing tests pass Bug: 36897968 Change-Id: I3039548929440f922dc69d7f130169a3d60b1eef --- core/java/android/util/MergedConfiguration.java | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'core/java/android/util/MergedConfiguration.java') diff --git a/core/java/android/util/MergedConfiguration.java b/core/java/android/util/MergedConfiguration.java index d94af8a68fc1..68d0309cfc9e 100644 --- a/core/java/android/util/MergedConfiguration.java +++ b/core/java/android/util/MergedConfiguration.java @@ -21,6 +21,8 @@ import android.content.res.Configuration; import android.os.Parcel; import android.os.Parcelable; +import java.io.PrintWriter; + /** * Container that holds global and override config and their merge product. * Merged configuration updates automatically whenever global or override configs are updated via @@ -41,6 +43,10 @@ public class MergedConfiguration implements Parcelable { setConfiguration(globalConfig, overrideConfig); } + public MergedConfiguration(Configuration globalConfig) { + setGlobalConfiguration(globalConfig); + } + public MergedConfiguration(MergedConfiguration mergedConfiguration) { setConfiguration(mergedConfiguration.getGlobalConfiguration(), mergedConfiguration.getOverrideConfiguration()); @@ -92,6 +98,36 @@ public class MergedConfiguration implements Parcelable { updateMergedConfig(); } + /** + * Update global configurations. + * Merged configuration will automatically be updated. + * @param globalConfig New global configuration. + */ + public void setGlobalConfiguration(Configuration globalConfig) { + mGlobalConfig.setTo(globalConfig); + updateMergedConfig(); + } + + /** + * Update override configurations. + * Merged configuration will automatically be updated. + * @param overrideConfig New override configuration. + */ + public void setOverrideConfiguration(Configuration overrideConfig) { + mOverrideConfig.setTo(overrideConfig); + updateMergedConfig(); + } + + public void setTo(MergedConfiguration config) { + setConfiguration(config.mGlobalConfig, config.mOverrideConfig); + } + + public void unset() { + mGlobalConfig.unset(); + mOverrideConfig.unset(); + updateMergedConfig(); + } + /** * @return Stored global configuration value. */ @@ -119,4 +155,14 @@ public class MergedConfiguration implements Parcelable { mMergedConfig.setTo(mGlobalConfig); mMergedConfig.updateFrom(mOverrideConfig); } + + @Override + public String toString() { + return "{mGlobalConfig=" + mGlobalConfig + " mOverrideConfig=" + mOverrideConfig + "}"; + } + + public void dump(PrintWriter pw, String prefix) { + pw.println(prefix + "mGlobalConfig=" + mGlobalConfig); + pw.println(prefix + "mOverrideConfig=" + mOverrideConfig); + } } -- cgit v1.2.3