diff --git a/res/values/strings.xml b/res/values/strings.xml
index b00a1f56edd..eab76b361b0 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -258,10 +258,10 @@
Stylus
-
+
Tail button press
-
- %s (Work profile)
+
+ %s (Work profile)
Write in text fields
diff --git a/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java b/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java
index e821966f428..ec9f4c6eb51 100644
--- a/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java
+++ b/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java
@@ -254,16 +254,17 @@ public class StylusDevicesController extends AbstractPreferenceController implem
private List getUserAndManagedProfiles() {
UserManager um = mContext.getSystemService(UserManager.class);
- final ArrayList userManagedProfiles = new ArrayList<>();
+ final List userManagedProfiles = new ArrayList<>();
// Add the current user, then add all the associated managed profiles.
final UserHandle currentUser = Process.myUserHandle();
userManagedProfiles.add(currentUser);
final List userInfos = um.getUsers();
for (UserInfo info : userInfos) {
- if (um.isManagedProfile(info.id)
- && um.getProfileParent(info.id).id == currentUser.getIdentifier()) {
- userManagedProfiles.add(UserHandle.of(info.id));
+ int userId = info.id;
+ if (um.isManagedProfile(userId)
+ && um.getProfileParent(userId).id == currentUser.getIdentifier()) {
+ userManagedProfiles.add(UserHandle.of(userId));
}
}
return userManagedProfiles;
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusDevicesControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusDevicesControllerTest.java
index 7fa6236b197..1fcf396f31c 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusDevicesControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusDevicesControllerTest.java
@@ -315,7 +315,7 @@ public class StylusDevicesControllerTest {
}
@Test
- public void defaultNotesPreferenceClick_multiUser_showsProfileSelectorDialog() {
+ public void defaultNotesPreferenceClick_multiUserManagedProfile_showsProfileSelectorDialog() {
mContext.setTheme(R.style.Theme_AppCompat);
final String permissionPackageName = "permissions.package";
final UserHandle currentUser = Process.myUserHandle();
@@ -337,13 +337,43 @@ public class StylusDevicesControllerTest {
assertTrue(mController.mDialog.isShowing());
}
+ @Test
+ public void defaultNotesPreferenceClick_noManagedProfile_sendsManageDefaultRoleIntent() {
+ final ArgumentCaptor captor = ArgumentCaptor.forClass(Intent.class);
+ mContext.setTheme(R.style.Theme_AppCompat);
+ final String permissionPackageName = "permissions.package";
+ final UserHandle currentUser = Process.myUserHandle();
+ List userInfos = Arrays.asList(
+ new UserInfo(currentUser.getIdentifier(), "current", 0),
+ new UserInfo(1, "other", UserInfo.FLAG_FULL)
+ );
+ when(mUserManager.getUsers()).thenReturn(userInfos);
+ when(mUserManager.isManagedProfile(1)).thenReturn(false);
+ when(mUserManager.getUserInfo(currentUser.getIdentifier())).thenReturn(userInfos.get(0));
+ when(mUserManager.getUserInfo(1)).thenReturn(userInfos.get(1));
+ when(mUserManager.getProfileParent(any())).thenReturn(null);
+ when(mPm.getPermissionControllerPackageName()).thenReturn(permissionPackageName);
+
+ showScreen(mController);
+ Preference defaultNotesPref = mPreferenceContainer.getPreference(0);
+ mController.onPreferenceClick(defaultNotesPref);
+
+ verify(mContext).startActivity(captor.capture());
+ Intent intent = captor.getValue();
+ assertThat(intent.getAction()).isEqualTo(Intent.ACTION_MANAGE_DEFAULT_APP);
+ assertThat(intent.getPackage()).isEqualTo(permissionPackageName);
+ assertThat(intent.getStringExtra(Intent.EXTRA_ROLE_NAME)).isEqualTo(
+ RoleManager.ROLE_NOTES);
+ assertNull(mController.mDialog);
+ }
+
@Test
public void profileSelectDialogClickCallback_onClick_sendsIntent() {
Intent intent = new Intent();
UserHandle user1 = mock(UserHandle.class);
UserHandle user2 = mock(UserHandle.class);
- List users = Arrays.asList(new UserHandle[] {user1, user2});
- mController.mDialog = mock(Dialog.class);
+ List users = Arrays.asList(user1, user2);
+ mController.mDialog = new Dialog(mContext);
UserAdapter.OnClickListener callback = mController
.createProfileDialogClickCallback(intent, users);