Fix WindowContextTests
Previously, window token assigns last config to mLastReportedConfiguration directly, which makes it share the same reference with getConfiguration(), and blocks all config changes request to clients. This CL uses Configuration#setTo instead. fixes: 152227175 Bug: 150251036 Test: atest WindowContextTests Change-Id: I44143aa558f223eb301e28f2e9110bfd66eac636
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -422,14 +422,17 @@ class WindowToken extends WindowContainer<WindowState> {
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user