diff --git a/app/src/main/java/org/thoughtcrime/securesms/lock/RegistrationLockDialog.java b/app/src/main/java/org/thoughtcrime/securesms/lock/RegistrationLockDialog.java index 0d8213f23b..be32357176 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/lock/RegistrationLockDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/lock/RegistrationLockDialog.java @@ -95,7 +95,6 @@ public final class RegistrationLockDialog { DisplayMetrics metrics = new DisplayMetrics(); display.getMetrics(metrics); - dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); dialog.show(); dialog.getWindow().setLayout((int)(metrics.widthPixels * .80), ViewGroup.LayoutParams.WRAP_CONTENT); @@ -108,7 +107,11 @@ public final class RegistrationLockDialog { SpannableString reminderText = new SpannableString(context.getString(R.string.KbsReminderDialog__to_help_you_memorize_your_pin)); SpannableString forgotText = new SpannableString(context.getString(R.string.KbsReminderDialog__forgot_pin)); - pinEditText.requestFocus(); + pinEditText.post(() -> { + if (pinEditText.requestFocus()) { + ServiceUtil.getInputMethodManager(pinEditText.getContext()).showSoftInput(pinEditText, 0); + } + }); switch (SignalStore.kbsValues().getKeyboardType()) { case NUMERIC: diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RegistrationLockFragment.java b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RegistrationLockFragment.java index b0085fd37d..8711d2a555 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RegistrationLockFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RegistrationLockFragment.java @@ -6,6 +6,7 @@ import android.text.InputType; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.WindowManager; import android.view.inputmethod.EditorInfo; import android.widget.EditText; import android.widget.TextView; @@ -26,6 +27,7 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.registration.service.CodeVerificationRequest; import org.thoughtcrime.securesms.registration.service.RegistrationService; import org.thoughtcrime.securesms.registration.viewmodel.RegistrationViewModel; +import org.thoughtcrime.securesms.util.ServiceUtil; import org.whispersystems.signalservice.internal.contacts.entities.TokenResponse; import java.util.concurrent.TimeUnit; @@ -76,6 +78,11 @@ public final class RegistrationLockFragment extends BaseRegistrationFragment { return false; }); + pinEntry.setFocusable(true); + if (pinEntry.requestFocus()) { + ServiceUtil.getInputMethodManager(pinEntry.getContext()).showSoftInput(pinEntry, 0); + } + pinButton.setOnClickListener((v) -> { hideKeyboard(requireContext(), pinEntry); handlePinEntry();