Merge changes Ib99310a4,I3bae98bc into main
* changes:
ModifierShortcutTest improvement
Add flag for making ModifierShortcutManager multiuser aware.
diff --git a/services/core/java/com/android/server/flags/services.aconfig b/services/core/java/com/android/server/flags/services.aconfig
index d387828..c361aee 100644
--- a/services/core/java/com/android/server/flags/services.aconfig
+++ b/services/core/java/com/android/server/flags/services.aconfig
@@ -35,3 +35,13 @@
description: "Enable BackgroundInstallControl based on system feature to prevent it from starting on form factors."
bug: "340928990"
}
+
+flag {
+ namespace: "input"
+ name: "modifier_shortcut_manager_multiuser"
+ description: "Update Modifier Shortcut Manager to work correctly with multiple users, including HSUM"
+ bug: "351963350"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
diff --git a/services/tests/wmtests/src/com/android/server/policy/ModifierShortcutTests.java b/services/tests/wmtests/src/com/android/server/policy/ModifierShortcutTests.java
index 59b08a5..526c351 100644
--- a/services/tests/wmtests/src/com/android/server/policy/ModifierShortcutTests.java
+++ b/services/tests/wmtests/src/com/android/server/policy/ModifierShortcutTests.java
@@ -97,6 +97,7 @@
mPhoneWindowManager.assertLaunchCategory(category);
}
+ mPhoneWindowManager.overrideRoleManager();
for (int i = 0; i < ROLE_SHORTCUTS.size(); i++) {
final int keyCode = ROLE_SHORTCUTS.keyAt(i);
final String role = ROLE_SHORTCUTS.valueAt(i);
diff --git a/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java b/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java
index fdb57d1..2b7e7ab 100644
--- a/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java
+++ b/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java
@@ -568,6 +568,12 @@
doReturn(isShowing).when(mKeyguardServiceDelegate).isShowing();
}
+ void overrideRoleManager() {
+ doReturn(mContext).when(mContext).createContextAsUser(any(), anyInt());
+ doReturn(mRoleManager).when(mContext).getSystemService(eq(RoleManager.class));
+ doReturn(mPackageManager).when(mContext).getPackageManager();
+ }
+
void setupAssistForLaunch() {
doNothing().when(mPhoneWindowManager).sendCloseSystemWindows();
doReturn(true).when(mPhoneWindowManager).isUserSetupComplete();
@@ -709,7 +715,7 @@
throw new AssertionError("failed to assert " + category, t);
}
// Reset verifier for next call.
- Mockito.reset(mContext);
+ Mockito.clearInvocations(mContext);
}
void assertLaunchRole(String role) {
@@ -719,10 +725,10 @@
verify(mContext).startActivityAsUser(intentCaptor.capture(), any());
switch (role) {
case RoleManager.ROLE_BROWSER:
- Assert.assertEquals(intentCaptor.getValue(), mBrowserIntent);
+ Assert.assertEquals(mBrowserIntent, intentCaptor.getValue());
break;
case RoleManager.ROLE_SMS:
- Assert.assertEquals(intentCaptor.getValue(), mSmsIntent);
+ Assert.assertEquals(mSmsIntent, intentCaptor.getValue());
break;
default:
throw new AssertionError("Role " + role + " not supported in tests.");
@@ -731,7 +737,7 @@
throw new AssertionError("failed to assert " + role, t);
}
// Reset verifier for next call.
- Mockito.reset(mContext);
+ Mockito.clearInvocations(mContext);
}