diff --git a/core/java/android/app/WindowTokenClient.java b/core/java/android/app/WindowTokenClient.java index 301960ec53f9e..b5d103959818d 100644 --- a/core/java/android/app/WindowTokenClient.java +++ b/core/java/android/app/WindowTokenClient.java @@ -67,13 +67,11 @@ public class WindowTokenClient extends IWindowToken.Stub { } final int currentDisplayId = context.getDisplayId(); final boolean displayChanged = newDisplayId != currentDisplayId; - final Configuration config = new Configuration(context.getResources() - .getConfiguration()); - final boolean configChanged = config.isOtherSeqNewer(newConfig) - && config.updateFrom(newConfig) != 0; + final Configuration config = context.getResources().getConfiguration(); + final boolean configChanged = config.diff(newConfig) != 0; if (displayChanged || configChanged) { // TODO(ag/9789103): update resource manager logic to track non-activity tokens - mResourcesManager.updateResourcesForActivity(this, config, newDisplayId, + mResourcesManager.updateResourcesForActivity(this, newConfig, newDisplayId, displayChanged); } if (displayChanged) { diff --git a/services/core/java/com/android/server/wm/WindowToken.java b/services/core/java/com/android/server/wm/WindowToken.java index 5976b48db7644..353cae0445df4 100644 --- a/services/core/java/com/android/server/wm/WindowToken.java +++ b/services/core/java/com/android/server/wm/WindowToken.java @@ -422,14 +422,17 @@ class WindowToken extends WindowContainer { if (!shouldReportToClient()) { return; } + if (mLastReportedConfig == null) { + mLastReportedConfig = new Configuration(); + } final Configuration config = getConfiguration(); final int displayId = getDisplayContent().getDisplayId(); - if (config.equals(mLastReportedConfig) && displayId == mLastReportedDisplay) { + if (config.diff(mLastReportedConfig) == 0 && displayId == mLastReportedDisplay) { // No changes since last reported time. return; } - mLastReportedConfig = config; + mLastReportedConfig.setTo(config); mLastReportedDisplay = displayId; IWindowToken windowTokenClient = IWindowToken.Stub.asInterface(token);