Merge "Properly show/hide advanced settings" into oc-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
12c9d6d65a
@@ -38,6 +38,7 @@
|
|||||||
settings:useAdditionalSummary="true" />
|
settings:useAdditionalSummary="true" />
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
|
android:key="advanced"
|
||||||
android:title="@string/advanced_apps">
|
android:title="@string/advanced_apps">
|
||||||
|
|
||||||
<!-- Visibility Override -->
|
<!-- Visibility Override -->
|
||||||
|
@@ -26,6 +26,7 @@ import android.os.Bundle;
|
|||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
|
import android.support.v7.preference.PreferenceGroup;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.BidiFormatter;
|
import android.text.BidiFormatter;
|
||||||
import android.text.SpannableStringBuilder;
|
import android.text.SpannableStringBuilder;
|
||||||
@@ -57,6 +58,7 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
|
|||||||
private static final String KEY_VIBRATE = "vibrate";
|
private static final String KEY_VIBRATE = "vibrate";
|
||||||
private static final String KEY_RINGTONE = "ringtone";
|
private static final String KEY_RINGTONE = "ringtone";
|
||||||
private static final String KEY_IMPORTANCE = "importance";
|
private static final String KEY_IMPORTANCE = "importance";
|
||||||
|
private static final String KEY_ADVANCED = "advanced";
|
||||||
|
|
||||||
private Preference mImportance;
|
private Preference mImportance;
|
||||||
private RestrictedSwitchPreference mLights;
|
private RestrictedSwitchPreference mLights;
|
||||||
@@ -65,6 +67,7 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
|
|||||||
private FooterPreference mFooter;
|
private FooterPreference mFooter;
|
||||||
private NotificationChannelGroup mChannelGroup;
|
private NotificationChannelGroup mChannelGroup;
|
||||||
private EntityHeaderController mHeaderPref;
|
private EntityHeaderController mHeaderPref;
|
||||||
|
private PreferenceGroup mAdvanced;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
@@ -129,6 +132,7 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
|
|||||||
setupVibrate();
|
setupVibrate();
|
||||||
setupRingtone();
|
setupRingtone();
|
||||||
setupImportance();
|
setupImportance();
|
||||||
|
mAdvanced = (PreferenceGroup) findPreference(KEY_ADVANCED);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addHeaderPref() {
|
private void addHeaderPref() {
|
||||||
@@ -373,18 +377,19 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
|
|||||||
if (mShowLegacyChannelConfig) {
|
if (mShowLegacyChannelConfig) {
|
||||||
setVisible(mImportanceToggle, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
|
setVisible(mImportanceToggle, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
|
||||||
} else {
|
} else {
|
||||||
|
setVisible(mAdvanced, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
|
||||||
setVisible(mImportance, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
|
setVisible(mImportance, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
|
||||||
setVisible(mLights, checkCanBeVisible(
|
setVisible(mAdvanced, mLights, checkCanBeVisible(
|
||||||
NotificationManager.IMPORTANCE_DEFAULT) && canPulseLight());
|
NotificationManager.IMPORTANCE_DEFAULT) && canPulseLight());
|
||||||
setVisible(mVibrate, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT));
|
setVisible(mVibrate, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT));
|
||||||
setVisible(mRingtone, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT));
|
setVisible(mRingtone, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT));
|
||||||
}
|
}
|
||||||
setVisible(mBadge, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
|
setVisible(mAdvanced, mBadge, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
|
||||||
setVisible(mPriority, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT)
|
setVisible(mAdvanced, mPriority, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT)
|
||||||
|| (checkCanBeVisible(NotificationManager.IMPORTANCE_LOW)
|
|| (checkCanBeVisible(NotificationManager.IMPORTANCE_LOW)
|
||||||
&& mDndVisualEffectsSuppressed));
|
&& mDndVisualEffectsSuppressed));
|
||||||
setVisible(mVisibilityOverride, checkCanBeVisible(NotificationManager.IMPORTANCE_LOW)
|
setVisible(mAdvanced, mVisibilityOverride, isLockScreenSecure()
|
||||||
&& isLockScreenSecure());
|
&&checkCanBeVisible(NotificationManager.IMPORTANCE_LOW));
|
||||||
setVisible(mBlockedDesc, mChannel.getImportance() == IMPORTANCE_NONE);
|
setVisible(mBlockedDesc, mChannel.getImportance() == IMPORTANCE_NONE);
|
||||||
if (mAppLink != null) {
|
if (mAppLink != null) {
|
||||||
setVisible(mAppLink, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
|
setVisible(mAppLink, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
|
||||||
|
@@ -53,6 +53,7 @@ import android.provider.Settings;
|
|||||||
import android.service.notification.NotificationListenerService;
|
import android.service.notification.NotificationListenerService;
|
||||||
import android.support.v7.preference.DropDownPreference;
|
import android.support.v7.preference.DropDownPreference;
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
|
import android.support.v7.preference.PreferenceGroup;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.ArrayMap;
|
import android.util.ArrayMap;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -195,12 +196,16 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void setVisible(Preference p, boolean visible) {
|
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 (isVisible == visible) return;
|
||||||
if (visible) {
|
if (visible) {
|
||||||
getPreferenceScreen().addPreference(p);
|
parent.addPreference(p);
|
||||||
} else {
|
} else {
|
||||||
getPreferenceScreen().removePreference(p);
|
parent.removePreference(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user