From d1e46422df221239cc8c319f5ee7e8c718cbce5a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 30 Oct 2023 12:14:55 -0600 Subject: [PATCH] Auto focus on PIN input and show keyboard --- .../cloudstream3/ui/account/AccountDialog.kt | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountDialog.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountDialog.kt index fda311ee..dfd8831b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountDialog.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountDialog.kt @@ -6,11 +6,13 @@ import android.text.TextWatcher import android.view.LayoutInflater import android.view.View import android.view.inputmethod.EditorInfo +import android.view.inputmethod.InputMethodManager import android.widget.TextView import androidx.annotation.StringRes import androidx.appcompat.app.AlertDialog import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.databinding.LockPinDialogBinding +import com.lagradost.cloudstream3.utils.UIHelper.dismissSafe object AccountDialog { // TODO add account creation dialog to allow creating accounts directly from AccountSelectActivity @@ -30,8 +32,6 @@ object AccountDialog { val binding = LockPinDialogBinding.inflate(LayoutInflater.from(context)) - binding.pinEditTextError.visibility = View.GONE - val isPinSet = currentPin != null val isNewPin = editAccount && !isPinSet val isEditPin = editAccount && isPinSet @@ -74,7 +74,7 @@ object AccountDialog { isPinValid = true callback.invoke(enteredPin) - dialog.dismiss() + dialog.dismissSafe() } } else { binding.pinEditTextError.visibility = View.GONE @@ -94,7 +94,7 @@ object AccountDialog { if (actionId == EditorInfo.IME_ACTION_DONE && isPinValid) { val enteredPin = binding.pinEditText.text.toString() callback.invoke(enteredPin) - dialog.dismiss() + dialog.dismissSafe() } true } @@ -104,5 +104,12 @@ object AccountDialog { dialog.setCanceledOnTouchOutside(false) dialog.show() + + // Auto focus on PIN input and show keyboard + binding.pinEditText.requestFocus() + binding.pinEditText.postDelayed({ + val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager + imm.showSoftInput(binding.pinEditText, InputMethodManager.SHOW_IMPLICIT) + }, 200) } } \ No newline at end of file