Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bba732d1 authored by Fabrice Di Meglio's avatar Fabrice Di Meglio
Browse files

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
parent ee18fdbe
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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"/>

+5 −3
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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;
        }
+0 −40
Original line number Diff line number Diff line
@@ -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) {