Update UI to show feedback while creating Guest from Settings.
Make UM.createGuest call async and show "Creating new guest" dialog during. Bug: 219741250 Test: Manual Change-Id: I7e3497fef283a4c13719a12b962866f88e9e5a50
This commit is contained in:
@@ -523,6 +523,30 @@ public class UserSettings extends SettingsPreferenceFragment
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
private void onAddGuestClicked() {
|
||||
final UserCreatingDialog guestCreatingDialog =
|
||||
new UserCreatingDialog(getActivity(), /* isGuest= */ true);
|
||||
guestCreatingDialog.show();
|
||||
|
||||
ThreadUtils.postOnBackgroundThread(() -> {
|
||||
mMetricsFeatureProvider.action(getActivity(), SettingsEnums.ACTION_USER_GUEST_ADD);
|
||||
Trace.beginSection("UserSettings.addGuest");
|
||||
final UserInfo guest = mUserManager.createGuest(getContext());
|
||||
Trace.endSection();
|
||||
|
||||
ThreadUtils.postOnMainThread(() -> {
|
||||
guestCreatingDialog.dismiss();
|
||||
if (guest == null) {
|
||||
Toast.makeText(getContext(),
|
||||
com.android.settingslib.R.string.add_guest_failed,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
openUserDetails(guest, true);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private void onRemoveUserClicked(int userId) {
|
||||
synchronized (mUserLock) {
|
||||
if (mRemovingUserId == -1 && !mAddingUser) {
|
||||
@@ -1258,17 +1282,7 @@ public class UserSettings extends SettingsPreferenceFragment
|
||||
return true;
|
||||
} else if (pref == mAddGuest) {
|
||||
mAddGuest.setEnabled(false); // prevent multiple tap issue
|
||||
mMetricsFeatureProvider.action(getActivity(), SettingsEnums.ACTION_USER_GUEST_ADD);
|
||||
Trace.beginSection("UserSettings.addGuest");
|
||||
UserInfo guest = mUserManager.createGuest(getContext());
|
||||
Trace.endSection();
|
||||
if (guest == null) {
|
||||
Toast.makeText(getContext(),
|
||||
com.android.settingslib.R.string.add_user_failed,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
return true;
|
||||
}
|
||||
openUserDetails(guest, true);
|
||||
onAddGuestClicked();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
Reference in New Issue
Block a user