diff options
author | Chris Wren <cwren@android.com> | 2014-08-26 17:32:44 -0400 |
---|---|---|
committer | Chris Wren <cwren@android.com> | 2014-08-26 17:33:56 -0400 |
commit | c2b750ca5b4d47cbfc52ffc7854c3e25e68981ef (patch) | |
tree | 150e647569ec218af958acf2ebaa708f82e2fe18 /src/com/android/settings/notification/NotificationSettings.java | |
parent | c61aabfa22e972a5173d2edc2aa5fd77fb37bdf9 (diff) | |
download | packages_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.java | 21 |
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() { |