From c70b7f6f359a87c614e582fdae0cdeee8c61138e Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Thu, 19 Jun 2014 11:29:26 -0700 Subject: [PATCH] Improve Search results highlighting - remove unnecessary code - use keyed Tag with a well known App key for preventing collisions - fix missing Brightness Level preference key (used for highlight) Change-Id: I070e3b8c3cb43da7addd34be192aade21951f57c --- res/values/ids.xml | 21 ++++++++++ res/xml/display_settings.xml | 1 + .../android/settings/DataUsageSummary.java | 8 ++-- .../settings/HighlightingFragment.java | 2 +- .../settings/SettingsPreferenceFragment.java | 40 ------------------- 5 files changed, 28 insertions(+), 44 deletions(-) create mode 100644 res/values/ids.xml diff --git a/res/values/ids.xml b/res/values/ids.xml new file mode 100644 index 00000000000..2fbf70b7ccd --- /dev/null +++ b/res/values/ids.xml @@ -0,0 +1,21 @@ + + + + + diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml index c1459385c51..4a8211f98c1 100644 --- a/res/xml/display_settings.xml +++ b/res/xml/display_settings.xml @@ -19,6 +19,7 @@ xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java index 1d4181600fe..dbef6cb7851 100644 --- a/src/com/android/settings/DataUsageSummary.java +++ b/src/com/android/settings/DataUsageSummary.java @@ -360,7 +360,8 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable mDataEnabled = new Switch(inflater.getContext()); mDataEnabledView = inflatePreference(inflater, mNetworkSwitches, mDataEnabled); - mDataEnabledView.setTag(DATA_USAGE_ENABLE_MOBILE_KEY); + mDataEnabledView.setTag(R.id.preference_highlight_key, + DATA_USAGE_ENABLE_MOBILE_KEY); mDataEnabled.setOnCheckedChangeListener(mDataEnabledListener); mNetworkSwitches.addView(mDataEnabledView); @@ -368,7 +369,8 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable mDisableAtLimit.setClickable(false); mDisableAtLimit.setFocusable(false); mDisableAtLimitView = inflatePreference(inflater, mNetworkSwitches, mDisableAtLimit); - mDisableAtLimitView.setTag(DATA_USAGE_DISABLE_MOBILE_LIMIT_KEY); + mDisableAtLimitView.setTag(R.id.preference_highlight_key, + DATA_USAGE_DISABLE_MOBILE_LIMIT_KEY); mDisableAtLimitView.setClickable(true); mDisableAtLimitView.setFocusable(true); mDisableAtLimitView.setOnClickListener(mDisableAtLimitListener); @@ -377,7 +379,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable // bind cycle dropdown mCycleView = mHeader.findViewById(R.id.cycles); - mCycleView.setTag(DATA_USAGE_CYCLE_KEY); + mCycleView.setTag(R.id.preference_highlight_key, DATA_USAGE_CYCLE_KEY); mCycleSpinner = (Spinner) mCycleView.findViewById(R.id.cycles_spinner); mCycleAdapter = new CycleAdapter(context); mCycleSpinner.setAdapter(mCycleAdapter); diff --git a/src/com/android/settings/HighlightingFragment.java b/src/com/android/settings/HighlightingFragment.java index 1424abdab7d..4a233b4228a 100644 --- a/src/com/android/settings/HighlightingFragment.java +++ b/src/com/android/settings/HighlightingFragment.java @@ -116,7 +116,7 @@ public class HighlightingFragment extends Fragment { } private boolean checkTag(View view, String key) { - final Object tag = view.getTag(); + final Object tag = view.getTag(R.id.preference_highlight_key); if (tag == null || !(tag instanceof String)) { return false; } diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java index 67432c0f9f5..eb2bea9e8f3 100644 --- a/src/com/android/settings/SettingsPreferenceFragment.java +++ b/src/com/android/settings/SettingsPreferenceFragment.java @@ -204,19 +204,6 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di }, DELAY_HIGHLIGHT_DURATION_MILLIS); } }); - } 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; - highlight.setHotspot(centerX, centerY); - preferenceView.setPressed(true); - preferenceView.setPressed(false); - } } } @@ -235,33 +222,6 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di return -1; } - private View findPreferenceViewForKey(View root, String key) { - if (checkTag(root, key)) { - return root; - } - if (root instanceof ViewGroup) { - final ViewGroup group = (ViewGroup) root; - final int count = group.getChildCount(); - for (int n = 0; n < count; n++) { - final View child = group.getChildAt(n); - final View view = findPreferenceViewForKey(child, key); - if (view != null) { - return view; - } - } - } - return null; - } - - private boolean checkTag(View view, String key) { - final Object tag = view.getTag(); - if (tag == null || !(tag instanceof String)) { - return false; - } - final String prefKey = (String) tag; - return (!TextUtils.isEmpty(prefKey) && prefKey.equals(key)); - } - protected void removePreference(String key) { Preference pref = findPreference(key); if (pref != null) {