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: Ib856cc33f9058c10303d239e60a0ee4c322385a1
This commit is contained in:
Fabrice Di Meglio
2014-06-19 11:29:26 -07:00
parent ee18fdbec8
commit bba732d1cb
4 changed files with 7 additions and 44 deletions

View File

@@ -19,6 +19,7 @@
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<com.android.settings.BrightnessPreference
android:key="brightness"
android:title="@string/brightness"
android:persistent="false"/>

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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) {