summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java27
1 files changed, 26 insertions, 1 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java
index f8326d9c1..26c024e1d 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java
@@ -1,5 +1,7 @@
package de.danoeh.antennapod.fragment;
+
+import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
@@ -9,6 +11,7 @@ import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
+import android.view.inputmethod.InputMethodManager;
import android.widget.ProgressBar;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -70,7 +73,6 @@ public class SearchFragment extends Fragment {
private SearchView searchView;
private Handler automaticSearchDebouncer;
private long lastQueryChange = 0;
-
/**
* Create a new SearchFragment that searches all feeds.
*/
@@ -153,6 +155,22 @@ public class SearchFragment extends Fragment {
if (getArguments().getString(ARG_QUERY, null) != null) {
search();
}
+ searchView.setOnQueryTextFocusChangeListener((view, hasFocus) -> {
+ if (hasFocus) {
+ showInputMethod(view.findFocus());
+ }
+ });
+ recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
+ @Override
+ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
+ super.onScrollStateChanged(recyclerView, newState);
+ if (newState == RecyclerView.SCROLL_STATE_DRAGGING) {
+ InputMethodManager imm = (InputMethodManager)
+ getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(recyclerView.getWindowToken(), 0);
+ }
+ }
+ });
return layout;
}
@@ -320,4 +338,11 @@ public class SearchFragment extends Fragment {
List<Feed> feeds = FeedSearcher.searchFeeds(getContext(), query);
return new Pair<>(items, feeds);
}
+
+ private void showInputMethod(View view) {
+ InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ if (imm != null) {
+ imm.showSoftInput(view, 0);
+ }
+ }
}