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
This commit is contained in:
21
res/values/ids.xml
Normal file
21
res/values/ids.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
**
|
||||
** Copyright 2014, The Android Open Source Project
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
-->
|
||||
<resources>
|
||||
<item type="id" name="preference_highlight_key" />
|
||||
</resources>
|
@@ -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"/>
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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) {
|
||||
|
Reference in New Issue
Block a user