From 0225b28fea7f97dde8ee08ce4595752f941dee0a Mon Sep 17 00:00:00 2001 From: rebelonion <87634197+rebelonion@users.noreply.github.com> Date: Thu, 8 Feb 2024 08:38:41 -0600 Subject: [PATCH] fix: hitting enter on password input continues --- .../ani/dantotsu/settings/SettingsActivity.kt | 38 +++++++++++++------ app/src/main/res/layout/dialog_user_agent.xml | 1 + 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt b/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt index 44c8ac67..92781528 100644 --- a/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt +++ b/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt @@ -14,6 +14,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.inputmethod.EditorInfo import android.widget.ArrayAdapter import android.widget.TextView import android.widget.Toast @@ -873,11 +874,9 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListene // Inflate the dialog layout val dialogView = LayoutInflater.from(this).inflate(R.layout.dialog_user_agent, null) - dialogView.findViewById(R.id.userAgentTextBox)?.hint = "Password" - val subtitleTextView = dialogView.findViewById(R.id.subtitle) - subtitleTextView?.visibility = View.VISIBLE - if (!isExporting) - subtitleTextView?.text = "Enter your password to decrypt the file" + val box = dialogView.findViewById(R.id.userAgentTextBox) + box?.hint = "Password" + box?.setSingleLine() val dialog = AlertDialog.Builder(this, R.style.MyPopup) .setTitle("Enter Password") @@ -889,12 +888,7 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListene callback(null) } .create() - - dialog.window?.setDimAmount(0.8f) - dialog.show() - - // Override the positive button here - dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener { + fun handleOkAction() { val editText = dialog.findViewById(R.id.userAgentTextBox) if (editText?.text?.isNotBlank() == true) { editText.text?.toString()?.trim()?.toCharArray(password) @@ -904,6 +898,28 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListene toast("Password cannot be empty") } } + box?.setOnEditorActionListener { _, actionId, _ -> + if (actionId == EditorInfo.IME_ACTION_DONE) { + handleOkAction() + true + } else { + false + } + } + val subtitleTextView = dialogView.findViewById(R.id.subtitle) + subtitleTextView?.visibility = View.VISIBLE + if (!isExporting) + subtitleTextView?.text = "Enter your password to decrypt the file" + + + dialog.window?.setDimAmount(0.8f) + dialog.show() + + // Override the positive button here + dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener { + handleOkAction() + } + } diff --git a/app/src/main/res/layout/dialog_user_agent.xml b/app/src/main/res/layout/dialog_user_agent.xml index 250c30c4..61cb3e95 100644 --- a/app/src/main/res/layout/dialog_user_agent.xml +++ b/app/src/main/res/layout/dialog_user_agent.xml @@ -25,6 +25,7 @@ app:boxCornerRadiusBottomStart="8dp" app:boxCornerRadiusTopEnd="8dp" app:boxCornerRadiusTopStart="8dp" + android:imeOptions="actionDone" app:hintAnimationEnabled="true" />