Use themed context to inflate preference views

b/23902759

Change-Id: Ie4b8a0d6d5fee1cf1629a2adb243a10b8a334742
diff --git a/v14/preference/src/android/support/v14/preference/PreferenceFragment.java b/v14/preference/src/android/support/v14/preference/PreferenceFragment.java
index 838d32d..c65731b 100644
--- a/v14/preference/src/android/support/v14/preference/PreferenceFragment.java
+++ b/v14/preference/src/android/support/v14/preference/PreferenceFragment.java
@@ -248,7 +248,15 @@
 
         a.recycle();
 
-        final View view = inflater.inflate(mLayoutResId, container, false);
+        // Need to theme the inflater to pick up the preferenceFragmentListStyle
+        final TypedValue tv = new TypedValue();
+        getActivity().getTheme().resolveAttribute(R.attr.preferenceTheme, tv, true);
+        final int theme = tv.resourceId;
+
+        final Context themedContext = new ContextThemeWrapper(inflater.getContext(), theme);
+        final LayoutInflater themedInflater = inflater.cloneInContext(themedContext);
+
+        final View view = themedInflater.inflate(mLayoutResId, container, false);
 
         final View rawListContainer = view.findViewById(R.id.list_container);
         if (!(rawListContainer instanceof ViewGroup)) {
@@ -258,7 +266,7 @@
 
         final ViewGroup listContainer = (ViewGroup) rawListContainer;
 
-        final RecyclerView listView = onCreateRecyclerView(inflater, listContainer,
+        final RecyclerView listView = onCreateRecyclerView(themedInflater, listContainer,
                 savedInstanceState);
         if (listView == null) {
             throw new RuntimeException("Could not create RecyclerView");
diff --git a/v17/preference-leanback/res/layout/leanback_preferences_list.xml b/v17/preference-leanback/res/layout/leanback_preferences_list.xml
index 15ecebc..21e4e4a 100644
--- a/v17/preference-leanback/res/layout/leanback_preferences_list.xml
+++ b/v17/preference-leanback/res/layout/leanback_preferences_list.xml
@@ -19,4 +19,5 @@
     android:id="@+id/list"
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent" />
+    android:layout_height="match_parent"
+    style="?attr/preferenceFragmentListStyle" />