From f92bc1b68a8110cd5d143c018a1df38b201d2aeb Mon Sep 17 00:00:00 2001 From: NekoInverter <7741672-NekoInverter@users.noreply.gitlab.com> Date: Thu, 17 Dec 2020 10:55:37 +0800 Subject: [PATCH] Fix keyboard not close after close dialog --- .../java/com/hippo/app/EditTextDialogBuilder.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/hippo/app/EditTextDialogBuilder.java b/app/src/main/java/com/hippo/app/EditTextDialogBuilder.java index 550741544..72d0359c0 100644 --- a/app/src/main/java/com/hippo/app/EditTextDialogBuilder.java +++ b/app/src/main/java/com/hippo/app/EditTextDialogBuilder.java @@ -22,6 +22,7 @@ import android.content.DialogInterface; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; @@ -33,10 +34,11 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.textfield.TextInputLayout; import com.hippo.ehviewer.R; -public class EditTextDialogBuilder extends MaterialAlertDialogBuilder implements EditText.OnEditorActionListener { +public class EditTextDialogBuilder extends MaterialAlertDialogBuilder implements EditText.OnEditorActionListener, DialogInterface.OnDismissListener { private final TextInputLayout mTextInputLayout; private final EditText mEditText; + private final InputMethodManager mInputMethodManager; private AlertDialog mDialog; @SuppressLint("InflateParams") @@ -50,6 +52,7 @@ public class EditTextDialogBuilder extends MaterialAlertDialogBuilder implements mEditText.setSelection(mEditText.getText().length()); mEditText.setOnEditorActionListener(this); mTextInputLayout.setHint(hint); + mInputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); } public EditText getEditText() { @@ -68,6 +71,7 @@ public class EditTextDialogBuilder extends MaterialAlertDialogBuilder implements @Override public AlertDialog create() { mDialog = super.create(); + mDialog.setOnDismissListener(this); return mDialog; } @@ -83,4 +87,9 @@ public class EditTextDialogBuilder extends MaterialAlertDialogBuilder implements return false; } } + + @Override + public void onDismiss(DialogInterface dialog) { + mInputMethodManager.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); + } }