Loading packages/SettingsLib/src/com/android/settingslib/enterprise/ManagedDeviceActionDisabledByAdminController.java +4 −64 Original line number Diff line number Diff line Loading @@ -18,12 +18,9 @@ package com.android.settingslib.enterprise; import static java.util.Objects.requireNonNull; import android.app.admin.DevicePolicyManager; import android.content.Context; import android.content.pm.PackageManager; import android.os.UserHandle; import android.os.UserManager; import android.text.TextUtils; import androidx.annotation.Nullable; Loading Loading @@ -69,50 +66,11 @@ final class ManagedDeviceActionDisabledByAdminController mResolveActivityChecker = requireNonNull(resolveActivityChecker); } @Override public void setupLearnMoreButton(Context context) { assertInitialized(); String url = mStringProvider.getLearnMoreHelpPageUrl(); if (!TextUtils.isEmpty(url) && canLaunchHelpPageInPreferredOrCurrentUser(context, url, mPreferredUserHandle)) { setupLearnMoreButtonToLaunchHelpPage(context, url, mPreferredUserHandle); } else { mLauncher.setupLearnMoreButtonToShowAdminPolicies(context, mEnforcementAdminUserId, mEnforcedAdmin); } } 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. * We don't show Learn More button in Admin-Support Dialog anymore. */ 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()); } @Override public void setupLearnMoreButton(Context context) { } private static boolean isUserForeground(Context context, UserHandle userHandle) { Loading @@ -122,26 +80,8 @@ final class ManagedDeviceActionDisabledByAdminController @Override public String getAdminSupportTitle(@Nullable String restriction) { if (restriction == null) { return mStringProvider.getDefaultDisabledByPolicyTitle(); } switch (restriction) { case UserManager.DISALLOW_ADJUST_VOLUME: return mStringProvider.getDisallowAdjustVolumeTitle(); case UserManager.DISALLOW_OUTGOING_CALLS: return mStringProvider.getDisallowOutgoingCallsTitle(); case UserManager.DISALLOW_SMS: return mStringProvider.getDisallowSmsTitle(); case DevicePolicyManager.POLICY_DISABLE_CAMERA: return mStringProvider.getDisableCameraTitle(); case DevicePolicyManager.POLICY_DISABLE_SCREEN_CAPTURE: return mStringProvider.getDisableScreenCaptureTitle(); case DevicePolicyManager.POLICY_SUSPEND_PACKAGES: return mStringProvider.getSuspendPackagesTitle(); default: return mStringProvider.getDefaultDisabledByPolicyTitle(); } } @Override public CharSequence getAdminSupportContentString(Context context, CharSequence supportMessage) { Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/enterprise/ManagedDeviceActionDisabledByAdminControllerTest.java +1 −65 Original line number Diff line number Diff line Loading @@ -18,10 +18,7 @@ package com.android.settingslib.enterprise; import static com.android.settingslib.enterprise.ActionDisabledByAdminControllerTestUtils.ENFORCED_ADMIN; import static com.android.settingslib.enterprise.ActionDisabledByAdminControllerTestUtils.ENFORCEMENT_ADMIN_USER_ID; import static com.android.settingslib.enterprise.ActionDisabledByAdminControllerTestUtils.LEARN_MORE_ACTION_LAUNCH_HELP_PAGE; import static com.android.settingslib.enterprise.ActionDisabledByAdminControllerTestUtils.LEARN_MORE_ACTION_SHOW_ADMIN_POLICIES; import static com.android.settingslib.enterprise.ActionDisabledByAdminControllerTestUtils.SUPPORT_MESSAGE; import static com.android.settingslib.enterprise.ActionDisabledByAdminControllerTestUtils.URL; import static com.android.settingslib.enterprise.FakeDeviceAdminStringProvider.DEFAULT_DISABLED_BY_POLICY_CONTENT; import static com.android.settingslib.enterprise.FakeDeviceAdminStringProvider.DEFAULT_DISABLED_BY_POLICY_TITLE; import static com.android.settingslib.enterprise.FakeDeviceAdminStringProvider.DISALLOW_ADJUST_VOLUME_TITLE; Loading Loading @@ -63,67 +60,6 @@ public class ManagedDeviceActionDisabledByAdminControllerTest { mActivity.setTheme(R.style.Theme_AppCompat_DayNight); } @Test public void setupLearnMoreButton_noUrl_negativeButtonSet() { ManagedDeviceActionDisabledByAdminController controller = createController(EMPTY_URL); controller.setupLearnMoreButton(mContext); 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(); Loading @@ -137,7 +73,7 @@ public class ManagedDeviceActionDisabledByAdminControllerTest { ManagedDeviceActionDisabledByAdminController controller = createController(); assertThat(controller.getAdminSupportTitle(RESTRICTION)) .isEqualTo(SUPPORT_TITLE_FOR_RESTRICTION); .isEqualTo(DEFAULT_DISABLED_BY_POLICY_TITLE); } @Test Loading Loading
packages/SettingsLib/src/com/android/settingslib/enterprise/ManagedDeviceActionDisabledByAdminController.java +4 −64 Original line number Diff line number Diff line Loading @@ -18,12 +18,9 @@ package com.android.settingslib.enterprise; import static java.util.Objects.requireNonNull; import android.app.admin.DevicePolicyManager; import android.content.Context; import android.content.pm.PackageManager; import android.os.UserHandle; import android.os.UserManager; import android.text.TextUtils; import androidx.annotation.Nullable; Loading Loading @@ -69,50 +66,11 @@ final class ManagedDeviceActionDisabledByAdminController mResolveActivityChecker = requireNonNull(resolveActivityChecker); } @Override public void setupLearnMoreButton(Context context) { assertInitialized(); String url = mStringProvider.getLearnMoreHelpPageUrl(); if (!TextUtils.isEmpty(url) && canLaunchHelpPageInPreferredOrCurrentUser(context, url, mPreferredUserHandle)) { setupLearnMoreButtonToLaunchHelpPage(context, url, mPreferredUserHandle); } else { mLauncher.setupLearnMoreButtonToShowAdminPolicies(context, mEnforcementAdminUserId, mEnforcedAdmin); } } 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. * We don't show Learn More button in Admin-Support Dialog anymore. */ 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()); } @Override public void setupLearnMoreButton(Context context) { } private static boolean isUserForeground(Context context, UserHandle userHandle) { Loading @@ -122,26 +80,8 @@ final class ManagedDeviceActionDisabledByAdminController @Override public String getAdminSupportTitle(@Nullable String restriction) { if (restriction == null) { return mStringProvider.getDefaultDisabledByPolicyTitle(); } switch (restriction) { case UserManager.DISALLOW_ADJUST_VOLUME: return mStringProvider.getDisallowAdjustVolumeTitle(); case UserManager.DISALLOW_OUTGOING_CALLS: return mStringProvider.getDisallowOutgoingCallsTitle(); case UserManager.DISALLOW_SMS: return mStringProvider.getDisallowSmsTitle(); case DevicePolicyManager.POLICY_DISABLE_CAMERA: return mStringProvider.getDisableCameraTitle(); case DevicePolicyManager.POLICY_DISABLE_SCREEN_CAPTURE: return mStringProvider.getDisableScreenCaptureTitle(); case DevicePolicyManager.POLICY_SUSPEND_PACKAGES: return mStringProvider.getSuspendPackagesTitle(); default: return mStringProvider.getDefaultDisabledByPolicyTitle(); } } @Override public CharSequence getAdminSupportContentString(Context context, CharSequence supportMessage) { Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/enterprise/ManagedDeviceActionDisabledByAdminControllerTest.java +1 −65 Original line number Diff line number Diff line Loading @@ -18,10 +18,7 @@ package com.android.settingslib.enterprise; import static com.android.settingslib.enterprise.ActionDisabledByAdminControllerTestUtils.ENFORCED_ADMIN; import static com.android.settingslib.enterprise.ActionDisabledByAdminControllerTestUtils.ENFORCEMENT_ADMIN_USER_ID; import static com.android.settingslib.enterprise.ActionDisabledByAdminControllerTestUtils.LEARN_MORE_ACTION_LAUNCH_HELP_PAGE; import static com.android.settingslib.enterprise.ActionDisabledByAdminControllerTestUtils.LEARN_MORE_ACTION_SHOW_ADMIN_POLICIES; import static com.android.settingslib.enterprise.ActionDisabledByAdminControllerTestUtils.SUPPORT_MESSAGE; import static com.android.settingslib.enterprise.ActionDisabledByAdminControllerTestUtils.URL; import static com.android.settingslib.enterprise.FakeDeviceAdminStringProvider.DEFAULT_DISABLED_BY_POLICY_CONTENT; import static com.android.settingslib.enterprise.FakeDeviceAdminStringProvider.DEFAULT_DISABLED_BY_POLICY_TITLE; import static com.android.settingslib.enterprise.FakeDeviceAdminStringProvider.DISALLOW_ADJUST_VOLUME_TITLE; Loading Loading @@ -63,67 +60,6 @@ public class ManagedDeviceActionDisabledByAdminControllerTest { mActivity.setTheme(R.style.Theme_AppCompat_DayNight); } @Test public void setupLearnMoreButton_noUrl_negativeButtonSet() { ManagedDeviceActionDisabledByAdminController controller = createController(EMPTY_URL); controller.setupLearnMoreButton(mContext); 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(); Loading @@ -137,7 +73,7 @@ public class ManagedDeviceActionDisabledByAdminControllerTest { ManagedDeviceActionDisabledByAdminController controller = createController(); assertThat(controller.getAdminSupportTitle(RESTRICTION)) .isEqualTo(SUPPORT_TITLE_FOR_RESTRICTION); .isEqualTo(DEFAULT_DISABLED_BY_POLICY_TITLE); } @Test Loading