Loading core/java/android/preference/PreferenceFragment.java +20 −0 Original line number Original line Diff line number Diff line Loading @@ -337,6 +337,26 @@ public abstract class PreferenceFragment extends Fragment implements return mList; return mList; } } /** @hide */ public boolean hasListView() { if (mList != null) { return true; } View root = getView(); if (root == null) { return false; } View rawListView = root.findViewById(android.R.id.list); if (!(rawListView instanceof ListView)) { return false; } mList = (ListView)rawListView; if (mList == null) { return false; } return true; } private void ensureList() { private void ensureList() { if (mList != null) { if (mList != null) { return; return; Loading core/java/android/preference/PreferenceGroupAdapter.java +19 −4 Original line number Original line Diff line number Diff line Loading @@ -20,6 +20,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Collections; import java.util.List; import java.util.List; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.Handler; import android.preference.Preference.OnPreferenceChangeInternalListener; import android.preference.Preference.OnPreferenceChangeInternalListener; import android.view.View; import android.view.View; Loading Loading @@ -91,7 +93,8 @@ public class PreferenceGroupAdapter extends BaseAdapter } } }; }; private int mActivatedPosition = -1; private int mHighlightedPosition = -1; private Drawable mHighlightedDrawable; private static class PreferenceLayout implements Comparable<PreferenceLayout> { private static class PreferenceLayout implements Comparable<PreferenceLayout> { private int resId; private int resId; Loading Loading @@ -212,8 +215,18 @@ public class PreferenceGroupAdapter extends BaseAdapter return this.getItem(position).getId(); return this.getItem(position).getId(); } } public void setActivated(int position) { /** mActivatedPosition = position; * @hide */ public void setHighlighted(int position) { mHighlightedPosition = position; } /** * @hide */ public void setHighlightedDrawable(Drawable drawable) { mHighlightedDrawable = drawable; } } public View getView(int position, View convertView, ViewGroup parent) { public View getView(int position, View convertView, ViewGroup parent) { Loading @@ -227,7 +240,9 @@ public class PreferenceGroupAdapter extends BaseAdapter convertView = null; convertView = null; } } View result = preference.getView(convertView, parent); View result = preference.getView(convertView, parent); result.setActivated(position == mActivatedPosition); if (position == mHighlightedPosition && mHighlightedDrawable != null) { result.setBackgroundDrawable(mHighlightedDrawable); } return result; return result; } } Loading Loading
core/java/android/preference/PreferenceFragment.java +20 −0 Original line number Original line Diff line number Diff line Loading @@ -337,6 +337,26 @@ public abstract class PreferenceFragment extends Fragment implements return mList; return mList; } } /** @hide */ public boolean hasListView() { if (mList != null) { return true; } View root = getView(); if (root == null) { return false; } View rawListView = root.findViewById(android.R.id.list); if (!(rawListView instanceof ListView)) { return false; } mList = (ListView)rawListView; if (mList == null) { return false; } return true; } private void ensureList() { private void ensureList() { if (mList != null) { if (mList != null) { return; return; Loading
core/java/android/preference/PreferenceGroupAdapter.java +19 −4 Original line number Original line Diff line number Diff line Loading @@ -20,6 +20,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Collections; import java.util.List; import java.util.List; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.Handler; import android.preference.Preference.OnPreferenceChangeInternalListener; import android.preference.Preference.OnPreferenceChangeInternalListener; import android.view.View; import android.view.View; Loading Loading @@ -91,7 +93,8 @@ public class PreferenceGroupAdapter extends BaseAdapter } } }; }; private int mActivatedPosition = -1; private int mHighlightedPosition = -1; private Drawable mHighlightedDrawable; private static class PreferenceLayout implements Comparable<PreferenceLayout> { private static class PreferenceLayout implements Comparable<PreferenceLayout> { private int resId; private int resId; Loading Loading @@ -212,8 +215,18 @@ public class PreferenceGroupAdapter extends BaseAdapter return this.getItem(position).getId(); return this.getItem(position).getId(); } } public void setActivated(int position) { /** mActivatedPosition = position; * @hide */ public void setHighlighted(int position) { mHighlightedPosition = position; } /** * @hide */ public void setHighlightedDrawable(Drawable drawable) { mHighlightedDrawable = drawable; } } public View getView(int position, View convertView, ViewGroup parent) { public View getView(int position, View convertView, ViewGroup parent) { Loading @@ -227,7 +240,9 @@ public class PreferenceGroupAdapter extends BaseAdapter convertView = null; convertView = null; } } View result = preference.getView(convertView, parent); View result = preference.getView(convertView, parent); result.setActivated(position == mActivatedPosition); if (position == mHighlightedPosition && mHighlightedDrawable != null) { result.setBackgroundDrawable(mHighlightedDrawable); } return result; return result; } } Loading