From ed4b4a1a3ca0ccf570d275a07ced98555cd32105 Mon Sep 17 00:00:00 2001 From: Alec Holmes Date: Fri, 1 Feb 2019 13:02:28 +0000 Subject: [PATCH] Updated search fragment to be amazon fire tv friendly --- .../java/org/schabi/newpipe/firetv/FireTvUtils.java | 11 +++++++++++ .../fragments/list/search/SearchFragment.java | 13 +++++++++---- app/src/main/res/layout/toolbar_search_layout.xml | 4 +++- 3 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/org/schabi/newpipe/firetv/FireTvUtils.java diff --git a/app/src/main/java/org/schabi/newpipe/firetv/FireTvUtils.java b/app/src/main/java/org/schabi/newpipe/firetv/FireTvUtils.java new file mode 100644 index 000000000..305c29ee7 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/firetv/FireTvUtils.java @@ -0,0 +1,11 @@ +package org.schabi.newpipe.firetv; + +import android.content.Context; +import org.schabi.newpipe.App; + +public class FireTvUtils { + public static boolean isFireTv(){ + final String AMAZON_FEATURE_FIRE_TV = "amazon.hardware.fire_tv"; + return App.getApp().getPackageManager().hasSystemFeature(AMAZON_FEATURE_FIRE_TV); + } +} 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 2833abb8d..0e8aad01d 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 @@ -39,6 +39,7 @@ import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.search.SearchExtractor; import org.schabi.newpipe.extractor.search.SearchInfo; +import org.schabi.newpipe.firetv.FireTvUtils; import org.schabi.newpipe.fragments.BackPressable; import org.schabi.newpipe.fragments.list.BaseListFragment; import org.schabi.newpipe.local.history.HistoryRecordManager; @@ -449,6 +450,9 @@ public class SearchFragment if (isSuggestionsEnabled && errorPanelRoot.getVisibility() != View.VISIBLE) { showSuggestionsPanel(); } + if(FireTvUtils.isFireTv()){ + showKeyboardSearch(); + } }); searchEditText.setOnFocusChangeListener((View v, boolean hasFocus) -> { @@ -499,7 +503,9 @@ public class SearchFragment if (DEBUG) { Log.d(TAG, "onEditorAction() called with: v = [" + v + "], actionId = [" + actionId + "], event = [" + event + "]"); } - if (event != null + if(actionId == EditorInfo.IME_ACTION_PREVIOUS){ + hideKeyboardSearch(); + } else if (event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER || event.getAction() == EditorInfo.IME_ACTION_SEARCH)) { search(searchEditText.getText().toString(), new String[0], ""); @@ -541,7 +547,7 @@ public class SearchFragment if (searchEditText.requestFocus()) { InputMethodManager imm = (InputMethodManager) activity.getSystemService( Context.INPUT_METHOD_SERVICE); - imm.showSoftInput(searchEditText, InputMethodManager.SHOW_IMPLICIT); + imm.showSoftInput(searchEditText, InputMethodManager.SHOW_FORCED); } } @@ -551,8 +557,7 @@ public class SearchFragment InputMethodManager imm = (InputMethodManager) activity.getSystemService( Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(searchEditText.getWindowToken(), - InputMethodManager.HIDE_NOT_ALWAYS); + imm.hideSoftInputFromWindow(searchEditText.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN); searchEditText.clearFocus(); } diff --git a/app/src/main/res/layout/toolbar_search_layout.xml b/app/src/main/res/layout/toolbar_search_layout.xml index 797eea48e..9e9e51442 100644 --- a/app/src/main/res/layout/toolbar_search_layout.xml +++ b/app/src/main/res/layout/toolbar_search_layout.xml @@ -30,7 +30,9 @@ android:layout_width="48dp" android:layout_height="48dp" android:layout_gravity="right|center_vertical" - tools:ignore="RtlHardcoded"> + android:focusable="true" + tools:ignore="RtlHardcoded" + android:background="?attr/selectableItemBackground">