summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/SettingsPreferenceFragment.java
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2014-05-21 16:19:41 -0700
committerFabrice Di Meglio <fdimeglio@google.com>2014-05-21 16:19:41 -0700
commit4a2ee7e2b610131452dd26e9b4e17f1bcc865bb9 (patch)
tree55f082161a583552c49a1873b805e38bff49811f /src/com/android/settings/SettingsPreferenceFragment.java
parentbbfaa11cf7558cb93941e005f9afb08809aebde9 (diff)
downloadpackages_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.java18
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;