[Android] Set search results focusable with DPAD

Geoffrey Métais git at videolan.org
Thu Nov 2 15:47:07 CET 2017


vlc-android | branch: 2.5.x | Geoffrey Métais <geoffrey.metais at gmail.com> | Thu Nov  2 15:42:03 2017 +0100| [8f17ee13fa6a30a8a9e32b9f0e2eae41a6848f50] | committer: Geoffrey Métais

Set search results focusable with DPAD

(cherry picked from commit 0f6e870920c23d4c4c4f908799c6ddf6af32e7f5)

> https://code.videolan.org/videolan/vlc-android/commit/8f17ee13fa6a30a8a9e32b9f0e2eae41a6848f50
---

 vlc-android/res/layout/search_item.xml                 |  6 +++++-
 .../src/org/videolan/vlc/gui/SearchResultAdapter.java  | 18 ++++++++++--------
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/vlc-android/res/layout/search_item.xml b/vlc-android/res/layout/search_item.xml
index dd538a571..dd10dcebc 100644
--- a/vlc-android/res/layout/search_item.xml
+++ b/vlc-android/res/layout/search_item.xml
@@ -15,6 +15,9 @@
         <variable
             name="handler"
             type="org.videolan.vlc.gui.SearchActivity.ClickHandler" />
+        <variable
+            name="bgColor"
+            type="int" />
     </data>
 
     <RelativeLayout
@@ -22,7 +25,8 @@
         android:layout_height="wrap_content"
         android:layout_margin="10dp"
         android:clickable="true"
-        android:background="?attr/background_default"
+        android:focusable="true"
+        android:background="@{bgColor}"
         android:onClick="@{() -> handler.onItemClick(item)}">
 
         <ImageView
diff --git a/vlc-android/src/org/videolan/vlc/gui/SearchResultAdapter.java b/vlc-android/src/org/videolan/vlc/gui/SearchResultAdapter.java
index 5d4b672ba..11da5f46b 100644
--- a/vlc-android/src/org/videolan/vlc/gui/SearchResultAdapter.java
+++ b/vlc-android/src/org/videolan/vlc/gui/SearchResultAdapter.java
@@ -1,6 +1,5 @@
 package org.videolan.vlc.gui;
 
-import android.content.Context;
 import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
@@ -8,6 +7,7 @@ import android.view.ViewGroup;
 
 import org.videolan.medialibrary.media.MediaLibraryItem;
 import org.videolan.vlc.databinding.SearchItemBinding;
+import org.videolan.vlc.gui.helpers.SelectorViewHolder;
 import org.videolan.vlc.gui.helpers.UiTools;
 
 
@@ -15,11 +15,16 @@ public class SearchResultAdapter extends RecyclerView.Adapter<SearchResultAdapte
 
     MediaLibraryItem[] mDataList;
     SearchActivity.ClickHandler mClickHandler;
+    private final LayoutInflater mLayoutInflater;
+
+    SearchResultAdapter(LayoutInflater inflater) {
+        super();
+        mLayoutInflater = inflater;
+    }
 
     @Override
     public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-        LayoutInflater inflater = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        return new ViewHolder(SearchItemBinding.inflate(inflater, parent, false));
+        return new ViewHolder(SearchItemBinding.inflate(mLayoutInflater, parent, false));
     }
 
     @Override
@@ -43,13 +48,10 @@ public class SearchResultAdapter extends RecyclerView.Adapter<SearchResultAdapte
         return mDataList == null ? 0 : mDataList.length;
     }
 
-    public class ViewHolder extends RecyclerView.ViewHolder {
-
-        public SearchItemBinding binding;
+    public class ViewHolder extends SelectorViewHolder<SearchItemBinding> {
 
         public ViewHolder(SearchItemBinding binding) {
-            super(binding.getRoot());
-            this.binding = binding;
+            super(binding);
             binding.setHolder(this);
             binding.setHandler(mClickHandler);
         }



More information about the Android mailing list