Merge "Minor fixes and tests for multiple full users for stylus notes app" into udc-qpr-dev am: 76f815f7b5
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23305328 Change-Id: I93342b240069f866cbd9bb03c4107008d3330368 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -258,10 +258,10 @@
|
||||
|
||||
<!-- Title for stylus device details page [CHAR LIMIT=50] -->
|
||||
<string name="stylus_device_details_title">Stylus</string>
|
||||
<!-- Preference title for setting the app that opens when stylus button is pressed [CHAR LIMIT=none] -->
|
||||
<!-- Preference title for setting the app that opens user presses stylus button [CHAR LIMIT=none] -->
|
||||
<string name="stylus_default_notes_app">Tail button press</string>
|
||||
<!-- Summary for the app that opens when tail button is pressed, if set to a work profile app [CHAR LIMIT=none] -->
|
||||
<string name="stylus_default_notes_summary_work"><xliff:g id="app_name" example="WhatsApp">%s</xliff:g> (Work profile)</string>
|
||||
<!-- Summary for the app that opens when user presses stylus tail button, if set to a work profile app [CHAR LIMIT=none] -->
|
||||
<string name="stylus_default_notes_summary_work"><xliff:g id="app_name" example="Mail">%s</xliff:g> (Work profile)</string>
|
||||
<!-- Preference title for toggling whether handwriting in textfields is enabled [CHAR LIMIT=none] -->
|
||||
<string name="stylus_textfield_handwriting">Write in text fields</string>
|
||||
<!-- Preference title for toggling whether stylus button presses are ignored [CHAR LIMIT=none] -->
|
||||
|
@@ -254,16 +254,17 @@ public class StylusDevicesController extends AbstractPreferenceController implem
|
||||
|
||||
private List<UserHandle> getUserAndManagedProfiles() {
|
||||
UserManager um = mContext.getSystemService(UserManager.class);
|
||||
final ArrayList<UserHandle> userManagedProfiles = new ArrayList<>();
|
||||
final List<UserHandle> userManagedProfiles = new ArrayList<>();
|
||||
// Add the current user, then add all the associated managed profiles.
|
||||
final UserHandle currentUser = Process.myUserHandle();
|
||||
userManagedProfiles.add(currentUser);
|
||||
|
||||
final List<UserInfo> 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;
|
||||
|
@@ -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<Intent> captor = ArgumentCaptor.forClass(Intent.class);
|
||||
mContext.setTheme(R.style.Theme_AppCompat);
|
||||
final String permissionPackageName = "permissions.package";
|
||||
final UserHandle currentUser = Process.myUserHandle();
|
||||
List<UserInfo> 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<UserHandle> users = Arrays.asList(new UserHandle[] {user1, user2});
|
||||
mController.mDialog = mock(Dialog.class);
|
||||
List<UserHandle> users = Arrays.asList(user1, user2);
|
||||
mController.mDialog = new Dialog(mContext);
|
||||
UserAdapter.OnClickListener callback = mController
|
||||
.createProfileDialogClickCallback(intent, users);
|
||||
|
||||
|
Reference in New Issue
Block a user