Remove "Add users from lock screen" from secondary users

Fixes: 124885010
Test: Robolectric, manual
Change-Id: I1c940fda2fa5f3da39c19bd119ac483024f5a83b
This commit is contained in:
Raff Tsai
2019-03-07 13:20:02 +08:00
parent 131eeac4aa
commit b508184d60
3 changed files with 40 additions and 7 deletions

View File

@@ -38,9 +38,13 @@ public class AddUserWhenLockedPreferenceController extends TogglePreferenceContr
mUserCaps.updateAddUserCapabilities(mContext);
final RestrictedSwitchPreference restrictedSwitchPreference =
(RestrictedSwitchPreference) preference;
restrictedSwitchPreference.setDisabledByAdmin(
mUserCaps.disallowAddUser() ? mUserCaps.getEnforcedAdmin() : null);
restrictedSwitchPreference.setVisible(mUserCaps.mUserSwitcherEnabled);
if (!isAvailable()) {
restrictedSwitchPreference.setVisible(false);
} else {
restrictedSwitchPreference.setDisabledByAdmin(
mUserCaps.disallowAddUser() ? mUserCaps.getEnforcedAdmin() : null);
restrictedSwitchPreference.setVisible(mUserCaps.mUserSwitcherEnabled);
}
}
@Override

View File

@@ -289,10 +289,8 @@ public class UserSettings extends SettingsPreferenceFragment
}
final PreferenceScreen screen = getPreferenceScreen();
if (mAddUserWhenLockedPreferenceController.isAvailable()) {
mAddUserWhenLockedPreferenceController.updateState(screen.findPreference(
mAddUserWhenLockedPreferenceController.getPreferenceKey()));
}
mAddUserWhenLockedPreferenceController.updateState(screen.findPreference(
mAddUserWhenLockedPreferenceController.getPreferenceKey()));
if (mShouldUpdateUserList) {
updateUI();

View File

@@ -30,6 +30,7 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.RestrictedSwitchPreference;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -57,6 +58,12 @@ public class AddUserWhenLockedPreferenceControllerTest {
mContext = RuntimeEnvironment.application;
mUserManager = ShadowUserManager.getShadow();
mController = new AddUserWhenLockedPreferenceController(mContext, "fake_key");
mUserManager.setSupportsMultipleUsers(true);
}
@After
public void tearDown() {
ShadowUserManager.reset();
}
@Test
@@ -71,6 +78,30 @@ public class AddUserWhenLockedPreferenceControllerTest {
verify(preference).setVisible(false);
}
@Test
public void updateState_NotAdmin_shouldNotDisplayPreference() {
mUserManager.setIsAdminUser(false);
final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);
mController.updateState(preference);
verify(preference).setVisible(false);
}
@Test
public void updateState_Admin_shouldDisplayPreference() {
mUserManager.setIsAdminUser(true);
mUserManager.setUserSwitcherEnabled(true);
mUserManager.setSupportsMultipleUsers(true);
final AddUserWhenLockedPreferenceController controller =
new AddUserWhenLockedPreferenceController(mContext, "fake_key");
final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);
controller.updateState(preference);
verify(preference).setVisible(true);
}
@Test
public void updateState_preferenceSetCheckedWhenSettingIsOn() {
final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);