Merge "Unset activity type for process level configuration" into rvc-qpr-dev
This commit is contained in:
@@ -188,7 +188,6 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio
|
|||||||
private final Configuration mLastReportedConfiguration = new Configuration();
|
private final Configuration mLastReportedConfiguration = new Configuration();
|
||||||
// Configuration that is waiting to be dispatched to the process.
|
// Configuration that is waiting to be dispatched to the process.
|
||||||
private Configuration mPendingConfiguration;
|
private Configuration mPendingConfiguration;
|
||||||
private final Configuration mNewOverrideConfig = new Configuration();
|
|
||||||
// Registered display id as a listener to override config change
|
// Registered display id as a listener to override config change
|
||||||
private int mDisplayId;
|
private int mDisplayId;
|
||||||
private ActivityRecord mConfigActivityRecord;
|
private ActivityRecord mConfigActivityRecord;
|
||||||
@@ -1167,12 +1166,27 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio
|
|||||||
updateConfiguration();
|
updateConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRequestedOverrideConfigurationChanged(Configuration overrideConfiguration) {
|
||||||
|
super.onRequestedOverrideConfigurationChanged(
|
||||||
|
sanitizeProcessConfiguration(overrideConfiguration));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMergedOverrideConfigurationChanged(Configuration mergedOverrideConfig) {
|
public void onMergedOverrideConfigurationChanged(Configuration mergedOverrideConfig) {
|
||||||
|
super.onRequestedOverrideConfigurationChanged(
|
||||||
|
sanitizeProcessConfiguration(mergedOverrideConfig));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Configuration sanitizeProcessConfiguration(Configuration config) {
|
||||||
// Make sure that we don't accidentally override the activity type.
|
// Make sure that we don't accidentally override the activity type.
|
||||||
mNewOverrideConfig.setTo(mergedOverrideConfig);
|
if (config.windowConfiguration.getActivityType() != ACTIVITY_TYPE_UNDEFINED) {
|
||||||
mNewOverrideConfig.windowConfiguration.setActivityType(ACTIVITY_TYPE_UNDEFINED);
|
final Configuration sanitizedConfig = new Configuration(config);
|
||||||
super.onRequestedOverrideConfigurationChanged(mNewOverrideConfig);
|
sanitizedConfig.windowConfiguration.setActivityType(ACTIVITY_TYPE_UNDEFINED);
|
||||||
|
return sanitizedConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateConfiguration() {
|
private void updateConfiguration() {
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package com.android.server.wm;
|
package com.android.server.wm;
|
||||||
|
|
||||||
|
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
|
||||||
|
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
|
||||||
import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
|
import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
|
||||||
import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
|
import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
|
||||||
import static android.view.Display.INVALID_DISPLAY;
|
import static android.view.Display.INVALID_DISPLAY;
|
||||||
@@ -253,6 +255,19 @@ public class WindowProcessControllerTests extends ActivityTestsBase {
|
|||||||
assertFalse(mWpc.registeredForActivityConfigChanges());
|
assertFalse(mWpc.registeredForActivityConfigChanges());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testProcessLevelConfiguration() {
|
||||||
|
Configuration config = new Configuration();
|
||||||
|
config.windowConfiguration.setActivityType(ACTIVITY_TYPE_HOME);
|
||||||
|
mWpc.onRequestedOverrideConfigurationChanged(config);
|
||||||
|
assertEquals(ACTIVITY_TYPE_HOME, config.windowConfiguration.getActivityType());
|
||||||
|
assertEquals(ACTIVITY_TYPE_UNDEFINED, mWpc.getActivityType());
|
||||||
|
|
||||||
|
mWpc.onMergedOverrideConfigurationChanged(config);
|
||||||
|
assertEquals(ACTIVITY_TYPE_HOME, config.windowConfiguration.getActivityType());
|
||||||
|
assertEquals(ACTIVITY_TYPE_UNDEFINED, mWpc.getActivityType());
|
||||||
|
}
|
||||||
|
|
||||||
private TestDisplayContent createTestDisplayContentInContainer() {
|
private TestDisplayContent createTestDisplayContentInContainer() {
|
||||||
return new TestDisplayContent.Builder(mService, 1000, 1500).build();
|
return new TestDisplayContent.Builder(mService, 1000, 1500).build();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user