Fix TVSettings Picker

The crash is mainly due to
mistake of:
notifyItemRangeInserted(oldItems.size(), oldItems.size() - items.size())
instead of:
notifyItemRangeInserted(oldItems.size(), items.size() - oldItems.size())

Even it notify range correctly,  the alpha is still messed because
Picker is trying to manipulate the alpha animation which conflicts with
RecyclerView item animation caused by notifyItemRangeInserted() and
notifyItemRangeRemoved(). Simply change to notifyDataSetChanged() so
that it skips RV item animation.

Fixed resource overlay order.

Bug 30123293

Change-Id: Ic3a4e3b6f72048c0f4e1dedb34e270773cdc1818
diff --git a/Settings/Android.mk b/Settings/Android.mk
index f1674c0..20bdabe 100644
--- a/Settings/Android.mk
+++ b/Settings/Android.mk
@@ -32,13 +32,13 @@
     android-support-v17-leanback
 
 LOCAL_RESOURCE_DIR := \
+    $(LOCAL_PATH)/res \
     $(TOP)/frameworks/support/v17/leanback/res \
     frameworks/support/v7/preference/res \
     frameworks/support/v14/preference/res \
     frameworks/support/v17/preference-leanback/res \
     frameworks/support/v7/appcompat/res \
-    $(TOP)/frameworks/support/v7/recyclerview/res \
-    $(LOCAL_PATH)/res
+    $(TOP)/frameworks/support/v7/recyclerview/res
 
 LOCAL_AAPT_FLAGS := --auto-add-overlay \
     --extra-packages android.support.v17.leanback:android.support.v7.preference:android.support.v14.preference:android.support.v17.preference:android.support.v7.appcompat:android.support.v7.recyclerview
diff --git a/Settings/src/com/android/tv/settings/widget/picker/Picker.java b/Settings/src/com/android/tv/settings/widget/picker/Picker.java
index a79e6bd..5dd1f16 100644
--- a/Settings/src/com/android/tv/settings/widget/picker/Picker.java
+++ b/Settings/src/com/android/tv/settings/widget/picker/Picker.java
@@ -400,7 +400,6 @@
         public Adapter(int columnId, List<String> items) {
             mColumnId = columnId;
             mItems = items;
-            setHasStableIds(true);
         }
 
         @Override
@@ -423,11 +422,6 @@
         }
 
         @Override
-        public long getItemId(int position) {
-            return position;
-        }
-
-        @Override
         public void onAttachedToRecyclerView(RecyclerView recyclerView) {
             mGridView = (VerticalGridView) recyclerView;
             mGridView.setOnChildSelectedListener(this);
@@ -454,11 +448,7 @@
         public void setItems(List<String> items) {
             final List<String> oldItems = mItems;
             mItems = items;
-            if (oldItems.size() < items.size()) {
-                notifyItemRangeInserted(oldItems.size(), oldItems.size() - items.size());
-            } else if (items.size() < oldItems.size()) {
-                notifyItemRangeRemoved(items.size(), items.size() - oldItems.size());
-            }
+            notifyDataSetChanged();
         }
     }