summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/notification/NotificationSettings.java
diff options
context:
space:
mode:
authorChris Wren <cwren@android.com>2014-08-26 17:32:44 -0400
committerChris Wren <cwren@android.com>2014-08-26 17:33:56 -0400
commitc2b750ca5b4d47cbfc52ffc7854c3e25e68981ef (patch)
tree150e647569ec218af958acf2ebaa708f82e2fe18 /src/com/android/settings/notification/NotificationSettings.java
parentc61aabfa22e972a5173d2edc2aa5fd77fb37bdf9 (diff)
downloadpackages_apps_Settings-c2b750ca5b4d47cbfc52ffc7854c3e25e68981ef.zip
packages_apps_Settings-c2b750ca5b4d47cbfc52ffc7854c3e25e68981ef.tar.gz
packages_apps_Settings-c2b750ca5b4d47cbfc52ffc7854c3e25e68981ef.tar.bz2
Don't show nonesensical notification visibility value.
lock_screen_notifications_summary_hide doesn't make sense on insecure lock screens, so don't show it, but make sure we can restore it if the user re-enables a secure method. Bug: 16649523 Change-Id: Ie295cd59f5e527da8402748834576bab97e9ad89
Diffstat (limited to 'src/com/android/settings/notification/NotificationSettings.java')
-rw-r--r--src/com/android/settings/notification/NotificationSettings.java21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/com/android/settings/notification/NotificationSettings.java b/src/com/android/settings/notification/NotificationSettings.java
index 2b0fd5c..a523a75 100644
--- a/src/com/android/settings/notification/NotificationSettings.java
+++ b/src/com/android/settings/notification/NotificationSettings.java
@@ -40,6 +40,7 @@ import android.provider.SearchIndexableResource;
import android.provider.Settings;
import android.util.Log;
+import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
@@ -82,6 +83,8 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
private TwoStatePreference mNotificationPulse;
private DropDownPreference mLockscreen;
private Preference mNotificationAccess;
+ private boolean mSecure;
+ private int mLockscreenSelectedValue;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -89,6 +92,7 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
mContext = getActivity();
mPM = mContext.getPackageManager();
mVoiceCapable = Utils.isVoiceCapable(mContext);
+ mSecure = new LockPatternUtils(getActivity()).isSecure();
addPreferencesFromResource(R.xml.notification_settings);
final PreferenceCategory sound = (PreferenceCategory) findPreference(KEY_SOUND);
@@ -303,10 +307,13 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
Log.i(TAG, "Preference not found: " + KEY_LOCK_SCREEN_NOTIFICATIONS);
return;
}
+
mLockscreen.addItem(R.string.lock_screen_notifications_summary_show,
R.string.lock_screen_notifications_summary_show);
- mLockscreen.addItem(R.string.lock_screen_notifications_summary_hide,
- R.string.lock_screen_notifications_summary_hide);
+ if (mSecure) {
+ mLockscreen.addItem(R.string.lock_screen_notifications_summary_hide,
+ R.string.lock_screen_notifications_summary_hide);
+ }
mLockscreen.addItem(R.string.lock_screen_notifications_summary_disable,
R.string.lock_screen_notifications_summary_disable);
updateLockscreenNotifications();
@@ -314,12 +321,16 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
@Override
public boolean onItemSelected(int pos, Object value) {
final int val = (Integer) value;
+ if (val == mLockscreenSelectedValue) {
+ return true;
+ }
final boolean enabled = val != R.string.lock_screen_notifications_summary_disable;
final boolean show = val == R.string.lock_screen_notifications_summary_show;
Settings.Secure.putInt(getContentResolver(),
Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, show ? 1 : 0);
Settings.Secure.putInt(getContentResolver(),
Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, enabled ? 1 : 0);
+ mLockscreenSelectedValue = val;
return true;
}
});
@@ -329,12 +340,12 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
if (mLockscreen == null) {
return;
}
- final boolean allowPrivate = getLockscreenAllowPrivateNotifications();
final boolean enabled = getLockscreenNotificationsEnabled();
- final int selectedVal = !enabled ? R.string.lock_screen_notifications_summary_disable :
+ final boolean allowPrivate = !mSecure || getLockscreenAllowPrivateNotifications();
+ mLockscreenSelectedValue = !enabled ? R.string.lock_screen_notifications_summary_disable :
allowPrivate ? R.string.lock_screen_notifications_summary_show :
R.string.lock_screen_notifications_summary_hide;
- mLockscreen.setSelectedValue(selectedVal);
+ mLockscreen.setSelectedValue(mLockscreenSelectedValue);
}
private boolean getLockscreenNotificationsEnabled() {