diff options
| author | Wale Ogunwale <ogunwale@google.com> | 2017-04-25 10:23:48 -0700 |
|---|---|---|
| committer | Wale Ogunwale <ogunwale@google.com> | 2017-04-25 11:48:43 -0700 |
| commit | e610d3dba8ea96636dd58ca4baa39dc9100467fd (patch) | |
| tree | e8cee84ee86adee476c03bf5f949e1b021793812 /core/java/android/util/MergedConfiguration.java | |
| parent | a31f49a0df23ffbb27f018900a181693e6c32d9e (diff) | |
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
Diffstat (limited to 'core/java/android/util/MergedConfiguration.java')
| -rw-r--r-- | core/java/android/util/MergedConfiguration.java | 46 |
1 files changed, 46 insertions, 0 deletions
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()); @@ -93,6 +99,36 @@ public class MergedConfiguration implements Parcelable { } /** + * 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. */ @NonNull @@ -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); + } } |
