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:
Yasin Kilicdere
2022-03-04 18:20:29 +00:00
parent 602ea501a6
commit 4e31442a72

View File

@@ -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;