From f9a860e00cafad56288e035f8f7800d0d844e7f0 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Thu, 8 Dec 2016 21:41:15 +1100 Subject: [PATCH] Show search button on keyboard when searching. --- .../fdroid/views/apps/AppListActivity.java | 19 +++++++++++++++++++ app/src/main/res/layout/activity_app_list.xml | 3 +++ 2 files changed, 22 insertions(+) diff --git a/app/src/main/java/org/fdroid/fdroid/views/apps/AppListActivity.java b/app/src/main/java/org/fdroid/fdroid/views/apps/AppListActivity.java index 4b68022f7..78aea486f 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/apps/AppListActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/apps/AppListActivity.java @@ -11,8 +11,12 @@ import android.support.v4.content.Loader; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.view.KeyEvent; import android.view.View; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputMethodManager; import android.widget.EditText; +import android.widget.TextView; import org.fdroid.fdroid.R; import org.fdroid.fdroid.data.AppProvider; @@ -35,6 +39,21 @@ public class AppListActivity extends AppCompatActivity implements LoaderManager. searchInput = (EditText) findViewById(R.id.search); searchInput.addTextChangedListener(new CategoryTextWatcher(this, searchInput, this)); + searchInput.setOnEditorActionListener(new TextView.OnEditorActionListener() { + @Override + public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { + if (actionId == EditorInfo.IME_ACTION_SEARCH) { + // Hide the keyboard (http://stackoverflow.com/a/1109108 (when pressing search) + InputMethodManager inputManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); + inputManager.hideSoftInputFromWindow(searchInput.getWindowToken(), 0); + + // Change focus from the search input to the app list. + appView.requestFocus(); + return true; + } + return false; + } + }); View backButton = findViewById(R.id.back); backButton.setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/res/layout/activity_app_list.xml b/app/src/main/res/layout/activity_app_list.xml index f81d7ba9e..00f06a02a 100644 --- a/app/src/main/res/layout/activity_app_list.xml +++ b/app/src/main/res/layout/activity_app_list.xml @@ -38,7 +38,10 @@ app:layout_constraintEnd_toStartOf="@+id/clear" android:padding="12dp" android:id="@+id/search" + android:imeOptions="actionSearch" + android:inputType="text" android:hint="@string/search_hint" + android:maxLines="1" android:background="@android:color/transparent" android:textSize="18sp" />