Guest mode UX flow updates to user settings
- Add option in user settings to enable/disable ephemeral
mode for guest user
- Update user settings to show exit guest and reset guest preferences
- Update user settings to show guest related preferences grouped together
Bug: 214031645, 175795666
Screenshots: go/ephemeral-guest-b-214031645-ux
Test: Manual test on sunfish, atest SystemUITests, atest SettingsRoboTests
Relands ag/16544951 after fixing post submit issues
Revert "Revert "Guest mode UX flow updates to user settings""
This reverts commit ed45e8c56a
.
Change-Id: I54583f9021171ae523ff40d4f63835f1cb486e35
This commit is contained in:
@@ -56,6 +56,7 @@ import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
@@ -152,6 +153,8 @@ public class UserSettingsTest {
|
||||
ReflectionHelpers.setField(mFragment, "mDefaultIconDrawable", mDefaultIconDrawable);
|
||||
ReflectionHelpers.setField(mFragment, "mAddingUser", false);
|
||||
ReflectionHelpers.setField(mFragment, "mMetricsFeatureProvider", mMetricsFeatureProvider);
|
||||
ReflectionHelpers.setField(mFragment, "mRemoveGuestOnExitPreferenceController",
|
||||
mock(RemoveGuestOnExitPreferenceController.class));
|
||||
|
||||
doReturn(mUserManager).when(mActivity).getSystemService(UserManager.class);
|
||||
doReturn(mPackageManager).when(mActivity).getPackageManager();
|
||||
@@ -178,6 +181,11 @@ public class UserSettingsTest {
|
||||
mFragment.mAddSupervisedUser = mAddSupervisedUserPreference;
|
||||
mFragment.mAddGuest = mAddGuestPreference;
|
||||
mFragment.mUserListCategory = mock(PreferenceCategory.class);
|
||||
mFragment.mGuestUserCategory = mock(PreferenceCategory.class);
|
||||
mFragment.mGuestCategory = mock(PreferenceCategory.class);
|
||||
mFragment.mGuestResetPreference = mock(Preference.class);
|
||||
mFragment.mGuestExitPreference = mock(Preference.class);
|
||||
mFragment.mGuestInfoPreference = mock(Preference.class);
|
||||
}
|
||||
|
||||
@After
|
||||
@@ -219,7 +227,7 @@ public class UserSettingsTest {
|
||||
@Test
|
||||
public void testExitGuest_ShouldLogAction() {
|
||||
mUserCapabilities.mIsGuest = true;
|
||||
mFragment.exitGuest();
|
||||
mFragment.clearAndExitGuest();
|
||||
verify(mMetricsFeatureProvider).action(any(),
|
||||
eq(SettingsEnums.ACTION_USER_GUEST_EXIT_CONFIRMED));
|
||||
}
|
||||
@@ -227,7 +235,7 @@ public class UserSettingsTest {
|
||||
@Test
|
||||
public void testExitGuestWhenNotGuest_ShouldNotLogAction() {
|
||||
mUserCapabilities.mIsGuest = false;
|
||||
mFragment.exitGuest();
|
||||
mFragment.clearAndExitGuest();
|
||||
verify(mMetricsFeatureProvider, never()).action(any(),
|
||||
eq(SettingsEnums.ACTION_USER_GUEST_EXIT_CONFIRMED));
|
||||
}
|
||||
@@ -323,7 +331,6 @@ public class UserSettingsTest {
|
||||
|
||||
verify(mAddGuestPreference).setVisible(true);
|
||||
verify(mAddGuestPreference).setEnabled(true);
|
||||
verify(mAddGuestPreference).setIcon(any(Drawable.class));
|
||||
verify(mAddGuestPreference).setSelectable(true);
|
||||
}
|
||||
|
||||
@@ -371,7 +378,6 @@ public class UserSettingsTest {
|
||||
|
||||
verify(mAddGuestPreference).setVisible(true);
|
||||
verify(mAddGuestPreference).setEnabled(false);
|
||||
verify(mAddGuestPreference).setIcon(any(Drawable.class));
|
||||
verify(mAddGuestPreference).setSelectable(true);
|
||||
}
|
||||
|
||||
@@ -473,9 +479,9 @@ public class UserSettingsTest {
|
||||
mFragment.updateUserList();
|
||||
|
||||
ArgumentCaptor<UserPreference> captor = ArgumentCaptor.forClass(UserPreference.class);
|
||||
verify(mFragment.mUserListCategory, times(2))
|
||||
verify(mFragment.mGuestUserCategory, times(1))
|
||||
.addPreference(captor.capture());
|
||||
UserPreference guestPref = captor.getAllValues().get(1);
|
||||
UserPreference guestPref = captor.getAllValues().get(0);
|
||||
assertThat(guestPref.getUserId()).isEqualTo(INACTIVE_GUEST_USER_ID);
|
||||
assertThat(guestPref.getTitle()).isEqualTo("Guest");
|
||||
assertThat(guestPref.getIcon()).isNotNull();
|
||||
@@ -595,9 +601,9 @@ public class UserSettingsTest {
|
||||
mFragment.updateUserList();
|
||||
|
||||
ArgumentCaptor<UserPreference> captor = ArgumentCaptor.forClass(UserPreference.class);
|
||||
verify(mFragment.mUserListCategory, times(2))
|
||||
verify(mFragment.mGuestUserCategory, times(1))
|
||||
.addPreference(captor.capture());
|
||||
UserPreference userPref = captor.getAllValues().get(1);
|
||||
UserPreference userPref = captor.getAllValues().get(0);
|
||||
assertThat(userPref.getUserId()).isEqualTo(INACTIVE_GUEST_USER_ID);
|
||||
assertThat(userPref.getSummary()).isNull();
|
||||
}
|
||||
|
Reference in New Issue
Block a user