From 65d83e0921cde15d37a326f0cf11aac7dc104234 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Mon, 18 Sep 2023 13:34:08 +0300 Subject: [PATCH] Fix search action #495 --- .../kotlin/org/koitharu/kotatsu/main/ui/MainActivity.kt | 9 +++++---- .../koitharu/kotatsu/search/ui/widget/SearchEditText.kt | 7 ++++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/main/ui/MainActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/main/ui/MainActivity.kt index 95fa26f61..ed377ad1a 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/main/ui/MainActivity.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/main/ui/MainActivity.kt @@ -239,10 +239,11 @@ class MainActivity : BaseActivity(), AppBarOwner, BottomNav override fun onQueryClick(query: String, submit: Boolean) { viewBinding.searchView.query = query - if (submit) { - if (query.isNotEmpty()) { - startActivity(MultiSearchActivity.newIntent(this, query)) - searchSuggestionViewModel.saveQuery(query) + if (submit && query.isNotEmpty()) { + startActivity(MultiSearchActivity.newIntent(this, query)) + searchSuggestionViewModel.saveQuery(query) + viewBinding.searchView.post { + closeSearchCallback.handleOnBackPressed() } } } diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/search/ui/widget/SearchEditText.kt b/app/src/main/kotlin/org/koitharu/kotatsu/search/ui/widget/SearchEditText.kt index e4722e717..914f5ec69 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/search/ui/widget/SearchEditText.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/search/ui/widget/SearchEditText.kt @@ -7,6 +7,7 @@ import android.text.Spannable import android.text.SpannableString import android.text.style.TextAppearanceSpan import android.util.AttributeSet +import android.view.InputDevice import android.view.KeyEvent import android.view.MotionEvent import android.view.SoundEffectConstants @@ -59,7 +60,11 @@ class SearchEditText @JvmOverloads constructor( } override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { - if (keyCode == KeyEvent.KEYCODE_ENTER && event.hasNoModifiers() && query.isNotEmpty()) { + if (event.isFromSource(InputDevice.SOURCE_KEYBOARD) + && (keyCode == KeyEvent.KEYCODE_ENTER || keyCode == KeyEvent.KEYCODE_NUMPAD_ENTER) + && event.hasNoModifiers() + && query.isNotEmpty() + ) { cancelLongPress() searchSuggestionListener?.onQueryClick(query, submit = true) clearFocus()