summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/SettingsPreferenceFragment.java
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2014-04-18 19:40:40 -0700
committerFabrice Di Meglio <fdimeglio@google.com>2014-04-21 09:28:17 -0700
commitc853a4282d0511d4a6886dfa95000c4dddff6a31 (patch)
treed0a846bd8610179f3dba77c1aedcf353391b7781 /src/com/android/settings/SettingsPreferenceFragment.java
parent7476f5b904f16a0b330a99fc0f7d900a722554ea (diff)
downloadpackages_apps_Settings-c853a4282d0511d4a6886dfa95000c4dddff6a31.zip
packages_apps_Settings-c853a4282d0511d4a6886dfa95000c4dddff6a31.tar.gz
packages_apps_Settings-c853a4282d0511d4a6886dfa95000c4dddff6a31.tar.bz2
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
Diffstat (limited to 'src/com/android/settings/SettingsPreferenceFragment.java')
-rw-r--r--src/com/android/settings/SettingsPreferenceFragment.java26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 5e0c06d..6b41349 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -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);
}
}