diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java index c42ecb3a501..d07d3030111 100644 --- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java @@ -98,16 +98,17 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { } if (!TextUtils.isEmpty(clsName)) { pref.setFragment(clsName); - } else if (tile.userHandle != null && tile.userHandle.size() > 1) { - pref.setOnPreferenceClickListener(preference -> { - ProfileSelectDialog.updateUserHandlesIfNeeded(activity, tile); - ProfileSelectDialog.show(activity.getFragmentManager(), tile); - return true; - }); } else if (tile.intent != null) { final Intent intent = new Intent(tile.intent); pref.setOnPreferenceClickListener(preference -> { - activity.startActivityForResult(intent, 0); + ProfileSelectDialog.updateUserHandlesIfNeeded(mContext, tile); + if (tile.userHandle == null) { + activity.startActivityForResult(intent, 0); + } else if (tile.userHandle.size() == 1) { + activity.startActivityForResultAsUser(intent, 0, tile.userHandle.get(0)); + } else { + ProfileSelectDialog.show(activity.getFragmentManager(), tile); + } return true; }); } diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java index 0ab76755db0..deae989e565 100644 --- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java @@ -112,7 +112,9 @@ public class DashboardFeatureProviderImplTest { tile.userHandle.add(mock(UserHandle.class)); tile.userHandle.add(mock(UserHandle.class)); tile.intent = new Intent(); - when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); + + when(mActivity.getApplicationContext().getSystemService(Context.USER_SERVICE)) + .thenReturn(mUserManager); mImpl.bindPreferenceToTile(mActivity, preference, tile, "123"); preference.getOnPreferenceClickListener().onPreferenceClick(null);