Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4e31442a authored by Yasin Kilicdere's avatar Yasin Kilicdere
Browse files

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
parent 602ea501
Loading
Loading
Loading
Loading
+25 −11
Original line number Diff line number Diff line
@@ -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;