diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java index 5c0d7d321fd..639eeb0d270 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java @@ -720,11 +720,14 @@ private void showDeleteSuggestionDialog(final SuggestionItem item) { @Override public boolean onBackPressed() { + if (KeyboardUtil.isKeyboardVisible(activity, searchEditText)) { + hideKeyboardSearch(); + return true; + } if (suggestionsPanelVisible && !infoListAdapter.getItemsList().isEmpty() && !isLoading.get()) { hideSuggestionsPanel(); - hideKeyboardSearch(); searchEditText.setText(lastSearchedString); return true; } diff --git a/app/src/main/java/org/schabi/newpipe/util/KeyboardUtil.java b/app/src/main/java/org/schabi/newpipe/util/KeyboardUtil.java index 679f3e042f8..1e2a0810e48 100644 --- a/app/src/main/java/org/schabi/newpipe/util/KeyboardUtil.java +++ b/app/src/main/java/org/schabi/newpipe/util/KeyboardUtil.java @@ -52,4 +52,13 @@ public static void hideKeyboard(final Activity activity, final EditText editText editText.clearFocus(); } + + public static boolean isKeyboardVisible(final Activity activity, final EditText editText) { + if (activity == null || editText == null) { + return false; + } + final InputMethodManager imm = ContextCompat.getSystemService(activity, + InputMethodManager.class); + return imm.isActive(editText); + } }