summaryrefslogtreecommitdiff
path: root/core/java/android/util/MergedConfiguration.java
diff options
context:
space:
mode:
authorWale Ogunwale <ogunwale@google.com>2017-04-25 10:23:48 -0700
committerWale Ogunwale <ogunwale@google.com>2017-04-25 11:48:43 -0700
commite610d3dba8ea96636dd58ca4baa39dc9100467fd (patch)
treee8cee84ee86adee476c03bf5f949e1b021793812 /core/java/android/util/MergedConfiguration.java
parenta31f49a0df23ffbb27f018900a181693e6c32d9e (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.java46
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);
+ }
}