Merge "fix recursion for config change" into nyc-dev
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 0c91307..6a20edb 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -3625,8 +3625,7 @@
// disregarding font scale, which should remain set to
// the value of the previous configuration.
mTempConfiguration.setToDefaults();
- mTempConfiguration.fontScale = currentConfig.fontScale;
- mTempConfiguration.uiMode = currentConfig.uiMode;
+ mTempConfiguration.updateFrom(currentConfig);
computeScreenConfigurationLocked(mTempConfiguration);
if (currentConfig.diff(mTempConfiguration) != 0) {
mWaitingForConfig = true;
@@ -3689,11 +3688,15 @@
}
synchronized(mWindowMap) {
- mCurConfiguration = new Configuration(config);
if (mWaitingForConfig) {
mWaitingForConfig = false;
mLastFinishedFreezeSource = "new-config";
}
+ boolean configChanged = mCurConfiguration.diff(config) != 0;
+ if (!configChanged) {
+ return null;
+ }
+ mCurConfiguration = new Configuration(config);
return onConfigurationChanged();
}
}
@@ -8877,8 +8880,7 @@
boolean configChanged = updateOrientationFromAppTokensLocked(false);
mTempConfiguration.setToDefaults();
- mTempConfiguration.fontScale = mCurConfiguration.fontScale;
- mTempConfiguration.uiMode = mCurConfiguration.uiMode;
+ mTempConfiguration.updateFrom(mCurConfiguration);
computeScreenConfigurationLocked(mTempConfiguration);
configChanged |= mCurConfiguration.diff(mTempConfiguration) != 0;