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

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

Enable highlighting of Print services

- add to SettingsPreferenceFragment to know when the associated
RootAdapter is changing and thus being able to find the highlighted
Preference
- also, add the correct Search key during indexing. She should
match the one created when adding dynamically the Preference
- last, increase to 400ms the delay to do the highlight

Change-Id: I3a1a81fdf5c8ab5f3aaab29f16ea9879ab6df056
parent 7476f5b9
Loading
Loading
Loading
Loading
+23 −3
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.database.DataSetObserver;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.preference.Preference;
@@ -47,7 +48,7 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di
    private static final String TAG = "SettingsPreferenceFragment";

    private static final int MENU_HELP = Menu.FIRST + 100;
    private static final int DELAY_HIGHLIGHT_DURATION_MILLIS = 300;
    private static final int DELAY_HIGHLIGHT_DURATION_MILLIS = 400;

    private static final String SAVE_HIGHLIGHTED_KEY = "android:preference_highlighted";

@@ -61,6 +62,18 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di
    private String mPreferenceKey;
    private boolean mPreferenceHighlighted = false;

    private DataSetObserver mDataSetObserver = new DataSetObserver() {
        @Override
        public void onChanged() {
            highlightPreferenceIfNeeded();
        }

        @Override
        public void onInvalidated() {
            highlightPreferenceIfNeeded();
        }
    };

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
@@ -99,11 +112,18 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di

    @Override
    protected void onBindPreferences() {
        highlightPreferenceIfNeeded();
        getPreferenceScreen().getRootAdapter().registerDataSetObserver(mDataSetObserver);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();

        getPreferenceScreen().getRootAdapter().unregisterDataSetObserver(mDataSetObserver);
    }

    public void highlightPreferenceIfNeeded() {
        if (!mPreferenceHighlighted &&!TextUtils.isEmpty(mPreferenceKey)) {
        if (isAdded() && !mPreferenceHighlighted &&!TextUtils.isEmpty(mPreferenceKey)) {
            highlightPreference(mPreferenceKey);
        }
    }
+6 −0
Original line number Diff line number Diff line
@@ -565,7 +565,13 @@ public class PrintSettingsFragment extends SettingsPreferenceFragment
            final int serviceCount = services.size();
            for (int i = 0; i < serviceCount; i++) {
                PrintServiceInfo service = services.get(i);

                ComponentName componentName = new ComponentName(
                        service.getResolveInfo().serviceInfo.packageName,
                        service.getResolveInfo().serviceInfo.name);

                SearchIndexableRaw indexable = new SearchIndexableRaw(context);
                indexable.key = componentName.flattenToString();
                indexable.title = service.getResolveInfo().loadLabel(packageManager).toString();
                indexable.summaryOn = context.getString(R.string.print_feature_state_on);
                indexable.summaryOff = context.getString(R.string.print_feature_state_off);