From f70ff8a998a6726be36452ce138bb8255002657a Mon Sep 17 00:00:00 2001 From: ScottieKim Date: Thu, 17 Jun 2021 21:36:10 +0900 Subject: [PATCH 1/2] Update: Issue #1259, Dismiss keyboard after changing the note title --- .../edit/title/EditTitleDialogFragment.java | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/title/EditTitleDialogFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/title/EditTitleDialogFragment.java index b370f7982..1afa73bbb 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/edit/title/EditTitleDialogFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/title/EditTitleDialogFragment.java @@ -2,11 +2,14 @@ import android.app.Dialog; import android.content.Context; +import android.content.DialogInterface; import android.os.Bundle; +import android.os.IBinder; import android.util.Log; import android.view.View; import android.view.Window; import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -60,12 +63,25 @@ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { return new MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.change_note_title) .setView(dialogView) - .setCancelable(true) - .setPositiveButton(R.string.action_edit_save, (dialog, which) -> listener.onTitleEdited(binding.title.getText().toString())) - .setNegativeButton(R.string.simple_cancel, null) + .setCancelable(false) + .setPositiveButton(R.string.action_edit_save, (dialog, which) -> { + hideKeyboard(dialogView.findViewById(R.id.title).getWindowToken()); + listener.onTitleEdited(binding.title.getText().toString()); + }) + .setNegativeButton(R.string.simple_cancel, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + hideKeyboard(dialogView.findViewById(R.id.title).getWindowToken()); + } + }) .create(); } + private void hideKeyboard(IBinder windowToken) { + InputMethodManager inputManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + inputManager.hideSoftInputFromWindow(windowToken, InputMethodManager.HIDE_NOT_ALWAYS); + } + @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); From 77947902521200833139c4319d561959f5b26686 Mon Sep 17 00:00:00 2001 From: ScottieKim Date: Fri, 25 Jun 2021 01:24:48 +0900 Subject: [PATCH 2/2] Update: subcategory enhancement #1154 solved --- .../notes/edit/title/EditTitleDialogFragment.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/title/EditTitleDialogFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/title/EditTitleDialogFragment.java index 1afa73bbb..6eeea2393 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/edit/title/EditTitleDialogFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/title/EditTitleDialogFragment.java @@ -65,20 +65,15 @@ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { .setView(dialogView) .setCancelable(false) .setPositiveButton(R.string.action_edit_save, (dialog, which) -> { - hideKeyboard(dialogView.findViewById(R.id.title).getWindowToken()); + hideKeyboard(dialogView.getWindowToken()); listener.onTitleEdited(binding.title.getText().toString()); }) - .setNegativeButton(R.string.simple_cancel, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - hideKeyboard(dialogView.findViewById(R.id.title).getWindowToken()); - } - }) + .setNegativeButton(R.string.simple_cancel, (dialog, which) -> hideKeyboard(dialogView.getWindowToken())) .create(); } private void hideKeyboard(IBinder windowToken) { - InputMethodManager inputManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + final InputMethodManager inputManager = (InputMethodManager) requireContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(windowToken, InputMethodManager.HIDE_NOT_ALWAYS); }