diff options
author | Fabrice Di Meglio <fdimeglio@google.com> | 2014-05-21 16:19:41 -0700 |
---|---|---|
committer | Fabrice Di Meglio <fdimeglio@google.com> | 2014-05-21 16:19:41 -0700 |
commit | 4a2ee7e2b610131452dd26e9b4e17f1bcc865bb9 (patch) | |
tree | 55f082161a583552c49a1873b805e38bff49811f /src/com/android/settings/SettingsPreferenceFragment.java | |
parent | bbfaa11cf7558cb93941e005f9afb08809aebde9 (diff) | |
download | packages_apps_Settings-4a2ee7e2b610131452dd26e9b4e17f1bcc865bb9.zip packages_apps_Settings-4a2ee7e2b610131452dd26e9b4e17f1bcc865bb9.tar.gz packages_apps_Settings-4a2ee7e2b610131452dd26e9b4e17f1bcc865bb9.tar.bz2 |
Improve Preference highlighting for Search
- cache hightlight Drawable
- set mPreferenceHighlighted as early as possible
Change-Id: I512d4677e94309175ead22c46b7a78e2aa387e1c
Diffstat (limited to 'src/com/android/settings/SettingsPreferenceFragment.java')
-rw-r--r-- | src/com/android/settings/SettingsPreferenceFragment.java | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java index a1f5ecd..67432c0 100644 --- a/src/com/android/settings/SettingsPreferenceFragment.java +++ b/src/com/android/settings/SettingsPreferenceFragment.java @@ -61,6 +61,7 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di private String mPreferenceKey; private boolean mPreferenceHighlighted = false; + private Drawable mHighlightDrawable; private boolean mIsDataSetObserverRegistered = false; private DataSetObserver mDataSetObserver = new DataSetObserver() { @@ -103,6 +104,11 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di if (!TextUtils.isEmpty(mHelpUrl)) { setHasOptionsMenu(true); } + } + + @Override + public void onResume() { + super.onResume(); final Bundle args = getArguments(); if (args != null) { @@ -144,7 +150,10 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di } private Drawable getHighlightDrawable() { - return getActivity().getDrawable(R.drawable.preference_highlight); + if (mHighlightDrawable == null) { + mHighlightDrawable = getActivity().getDrawable(R.drawable.preference_highlight); + } + return mHighlightDrawable; } /** @@ -170,6 +179,8 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di final int position = canUseListViewForHighLighting(key); if (position >= 0) { + mPreferenceHighlighted = true; + final ListView listView = getListView(); final ListAdapter adapter = listView.getAdapter(); @@ -189,17 +200,16 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di highlight.setHotspot(centerX, centerY); v.setPressed(true); v.setPressed(false); - ((PreferenceGroupAdapter) adapter).setHighlighted(-1); } }, DELAY_HIGHLIGHT_DURATION_MILLIS); - - mPreferenceHighlighted = true; } }); } else { // Try locating the Preference View thru its tag View preferenceView = findPreferenceViewForKey(getView(), key); if (preferenceView != null ) { + mPreferenceHighlighted = true; + preferenceView.setBackground(highlight); final int centerX = preferenceView.getWidth() / 2; final int centerY = preferenceView.getHeight() / 2; |