Properly show/hide advanced settings

Change-Id: I31f6f877f1945187a6f19e1b383bd3755656fb9b
Fixes: 65375390
Test: manual
This commit is contained in:
Julia Reynolds
2017-09-06 09:09:30 -04:00
parent d57edb708f
commit bd42fe5880
3 changed files with 19 additions and 8 deletions

View File

@@ -53,6 +53,7 @@ import android.provider.Settings;
import android.service.notification.NotificationListenerService;
import android.support.v7.preference.DropDownPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.Log;
@@ -195,12 +196,16 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
}
protected void setVisible(Preference p, boolean visible) {
final boolean isVisible = getPreferenceScreen().findPreference(p.getKey()) != null;
setVisible(getPreferenceScreen(), p, visible);
}
protected void setVisible(PreferenceGroup parent, Preference p, boolean visible) {
final boolean isVisible = parent.findPreference(p.getKey()) != null;
if (isVisible == visible) return;
if (visible) {
getPreferenceScreen().addPreference(p);
parent.addPreference(p);
} else {
getPreferenceScreen().removePreference(p);
parent.removePreference(p);
}
}