diff --git a/packages/SettingsLib/lint-baseline.xml b/packages/SettingsLib/lint-baseline.xml
index 3691d0bd9831a..f6d6ca62e78c4 100644
--- a/packages/SettingsLib/lint-baseline.xml
+++ b/packages/SettingsLib/lint-baseline.xml
@@ -892,15 +892,4 @@
column="59"/>
-
If not able to launch the web help page in this user, the current user will be used as - * fallback instead. If the current user cannot open it either, the admin policies page will - * be used instead. - */ - private final UserHandle mPreferredUserHandle; - - private final ForegroundUserChecker mForegroundUserChecker; - private final ResolveActivityChecker mResolveActivityChecker; + private final UserHandle mUserHandle; /** * Constructs a {@link ManagedDeviceActionDisabledByAdminController} - * @param preferredUserHandle - user on which to launch the help web page, if necessary + * @param userHandle - user on which to launch the help web page, if necessary */ ManagedDeviceActionDisabledByAdminController( DeviceAdminStringProvider stringProvider, - UserHandle preferredUserHandle, - ForegroundUserChecker foregroundUserChecker, - ResolveActivityChecker resolveActivityChecker) { + UserHandle userHandle) { super(stringProvider); - mPreferredUserHandle = requireNonNull(preferredUserHandle); - mForegroundUserChecker = requireNonNull(foregroundUserChecker); - mResolveActivityChecker = requireNonNull(resolveActivityChecker); + mUserHandle = requireNonNull(userHandle); } @Override @@ -74,52 +53,14 @@ final class ManagedDeviceActionDisabledByAdminController assertInitialized(); String url = mStringProvider.getLearnMoreHelpPageUrl(); - - if (!TextUtils.isEmpty(url) - && canLaunchHelpPageInPreferredOrCurrentUser(context, url, mPreferredUserHandle)) { - setupLearnMoreButtonToLaunchHelpPage(context, url, mPreferredUserHandle); - } else { + if (TextUtils.isEmpty(url)) { mLauncher.setupLearnMoreButtonToShowAdminPolicies(context, mEnforcementAdminUserId, mEnforcedAdmin); + } else { + mLauncher.setupLearnMoreButtonToLaunchHelpPage(context, url, mUserHandle); } } - private boolean canLaunchHelpPageInPreferredOrCurrentUser( - Context context, String url, UserHandle preferredUserHandle) { - PackageManager packageManager = context.getPackageManager(); - if (mLauncher.canLaunchHelpPage( - packageManager, url, preferredUserHandle, mResolveActivityChecker) - && mForegroundUserChecker.isUserForeground(context, preferredUserHandle)) { - return true; - } - return mLauncher.canLaunchHelpPage( - packageManager, url, context.getUser(), mResolveActivityChecker); - } - - /** - * Sets up the "Learn more" button to launch the web help page in the {@code - * preferredUserHandle} user. If not possible to launch it there, it sets up the button to - * launch it in the current user instead. - */ - private void setupLearnMoreButtonToLaunchHelpPage( - Context context, String url, UserHandle preferredUserHandle) { - PackageManager packageManager = context.getPackageManager(); - if (mLauncher.canLaunchHelpPage( - packageManager, url, preferredUserHandle, mResolveActivityChecker) - && mForegroundUserChecker.isUserForeground(context, preferredUserHandle)) { - mLauncher.setupLearnMoreButtonToLaunchHelpPage(context, url, preferredUserHandle); - } - if (mLauncher.canLaunchHelpPage( - packageManager, url, context.getUser(), mResolveActivityChecker)) { - mLauncher.setupLearnMoreButtonToLaunchHelpPage(context, url, context.getUser()); - } - } - - private static boolean isUserForeground(Context context, UserHandle userHandle) { - return context.createContextAsUser(userHandle, /* flags= */ 0) - .getSystemService(UserManager.class).isUserForeground(); - } - @Override public String getAdminSupportTitle(@Nullable String restriction) { if (restriction == null) { diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/enterprise/ManagedDeviceActionDisabledByAdminControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/enterprise/ManagedDeviceActionDisabledByAdminControllerTest.java index 509e12d241ddd..d9be4f336797d 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/enterprise/ManagedDeviceActionDisabledByAdminControllerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/enterprise/ManagedDeviceActionDisabledByAdminControllerTest.java @@ -30,8 +30,6 @@ import static com.google.common.truth.Truth.assertThat; import android.app.Activity; import android.content.Context; -import android.content.pm.ResolveInfo; -import android.os.UserHandle; import android.os.UserManager; import androidx.test.core.app.ApplicationProvider; @@ -47,11 +45,9 @@ import org.robolectric.android.controller.ActivityController; @RunWith(RobolectricTestRunner.class) public class ManagedDeviceActionDisabledByAdminControllerTest { - private static UserHandle MANAGED_USER = UserHandle.of(123); private static final String RESTRICTION = UserManager.DISALLOW_ADJUST_VOLUME; private static final String EMPTY_URL = ""; private static final String SUPPORT_TITLE_FOR_RESTRICTION = DISALLOW_ADJUST_VOLUME_TITLE; - public static final ResolveInfo TEST_RESULT_INFO = new ResolveInfo(); private final Context mContext = ApplicationProvider.getApplicationContext(); private final Activity mActivity = ActivityController.of(new Activity()).get(); @@ -63,6 +59,15 @@ public class ManagedDeviceActionDisabledByAdminControllerTest { mActivity.setTheme(R.style.Theme_AppCompat_DayNight); } + @Test + public void setupLearnMoreButton_validUrl_negativeButtonSet() { + ManagedDeviceActionDisabledByAdminController controller = createController(URL); + + controller.setupLearnMoreButton(mContext); + + mTestUtils.assertLearnMoreAction(LEARN_MORE_ACTION_LAUNCH_HELP_PAGE); + } + @Test public void setupLearnMoreButton_noUrl_negativeButtonSet() { ManagedDeviceActionDisabledByAdminController controller = createController(EMPTY_URL); @@ -72,58 +77,6 @@ public class ManagedDeviceActionDisabledByAdminControllerTest { mTestUtils.assertLearnMoreAction(LEARN_MORE_ACTION_SHOW_ADMIN_POLICIES); } - @Test - public void setupLearnMoreButton_validUrl_foregroundUser_launchesHelpPage() { - ManagedDeviceActionDisabledByAdminController controller = createController( - URL, - /* isUserForeground= */ true, - /* preferredUserHandle= */ MANAGED_USER, - /* userContainingBrowser= */ MANAGED_USER); - - controller.setupLearnMoreButton(mContext); - - mTestUtils.assertLearnMoreAction(LEARN_MORE_ACTION_LAUNCH_HELP_PAGE); - } - - @Test - public void setupLearnMoreButton_validUrl_browserInPreferredUser_notForeground_showsAdminPolicies() { - ManagedDeviceActionDisabledByAdminController controller = createController( - URL, - /* isUserForeground= */ false, - /* preferredUserHandle= */ MANAGED_USER, - /* userContainingBrowser= */ MANAGED_USER); - - controller.setupLearnMoreButton(mContext); - - mTestUtils.assertLearnMoreAction(LEARN_MORE_ACTION_SHOW_ADMIN_POLICIES); - } - - @Test - public void setupLearnMoreButton_validUrl_browserInCurrentUser_launchesHelpPage() { - ManagedDeviceActionDisabledByAdminController controller = createController( - URL, - /* isUserForeground= */ false, - /* preferredUserHandle= */ MANAGED_USER, - /* userContainingBrowser= */ mContext.getUser()); - - controller.setupLearnMoreButton(mContext); - - mTestUtils.assertLearnMoreAction(LEARN_MORE_ACTION_LAUNCH_HELP_PAGE); - } - - @Test - public void setupLearnMoreButton_validUrl_browserNotOnAnyUser_showsAdminPolicies() { - ManagedDeviceActionDisabledByAdminController controller = createController( - URL, - /* isUserForeground= */ false, - /* preferredUserHandle= */ MANAGED_USER, - /* userContainingBrowser= */ null); - - controller.setupLearnMoreButton(mContext); - - mTestUtils.assertLearnMoreAction(LEARN_MORE_ACTION_SHOW_ADMIN_POLICIES); - } - @Test public void getAdminSupportTitleResource_noRestriction_works() { ManagedDeviceActionDisabledByAdminController controller = createController(); @@ -157,33 +110,13 @@ public class ManagedDeviceActionDisabledByAdminControllerTest { } private ManagedDeviceActionDisabledByAdminController createController() { - return createController( - /* url= */ null, - /* foregroundUserChecker= */ true, - mContext.getUser(), - /* userContainingBrowser= */ null); + return createController(/* url= */ null); } private ManagedDeviceActionDisabledByAdminController createController(String url) { - return createController( - url, - /* foregroundUserChecker= */ true, - mContext.getUser(), - /* userContainingBrowser= */ null); - } - - private ManagedDeviceActionDisabledByAdminController createController( - String url, - boolean isUserForeground, - UserHandle preferredUserHandle, - UserHandle userContainingBrowser) { ManagedDeviceActionDisabledByAdminController controller = new ManagedDeviceActionDisabledByAdminController( - new FakeDeviceAdminStringProvider(url), - preferredUserHandle, - /* foregroundUserChecker= */ (context, userHandle) -> isUserForeground, - /* resolveActivityChecker= */ (packageManager, __, userHandle) -> - userHandle.equals(userContainingBrowser)); + new FakeDeviceAdminStringProvider(url), mContext.getUser()); controller.initialize(mTestUtils.createLearnMoreButtonLauncher()); controller.updateEnforcedAdmin(ENFORCED_ADMIN, ENFORCEMENT_ADMIN_USER_ID); return controller;