Loading res/xml/security_lockscreen_settings.xml +23 −12 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ android:title="@string/lockscreen_settings_title"> <com.android.settings.notification.RestrictedDropDownPreference android:key="lock_screen_notifications" android:key="security_setting_lock_screen_notif" android:title="@string/lock_screen_notifications_title" android:summary="@string/summary_placeholder" /> Loading @@ -32,4 +32,15 @@ android:title="@string/owner_info_settings_title" android:summary="@string/owner_info_settings_summary" /> <PreferenceCategory android:key="security_setting_lock_screen_notif_work_header" android:title="@string/profile_section_header"> <com.android.settings.notification.RestrictedDropDownPreference android:key="security_setting_lock_screen_notif_work" android:title="@string/lock_screen_notifications_title" android:summary="@string/summary_placeholder" /> </PreferenceCategory> </PreferenceScreen> src/com/android/settings/notification/ConfigureNotificationSettings.java +4 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,10 @@ public class ConfigureNotificationSettings extends DashboardFragment { final PulseNotificationPreferenceController pulseController = new PulseNotificationPreferenceController(context); final LockScreenNotificationPreferenceController lockScreenNotificationController = new LockScreenNotificationPreferenceController(context); new LockScreenNotificationPreferenceController(context, "lock_screen_notifications", "lock_screen_notifications_profile_header", "lock_screen_notifications_profile"); if (lifecycle != null) { lifecycle.addObserver(pulseController); lifecycle.addObserver(lockScreenNotificationController); Loading src/com/android/settings/notification/LockScreenNotificationPreferenceController.java +25 −18 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.os.UserManager; import android.provider.Settings; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import android.text.TextUtils; import android.util.Log; import com.android.internal.widget.LockPatternUtils; Loading @@ -46,11 +47,10 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause { private static final String TAG = "LockScreenNotifPref"; private static final String KEY_LOCK_SCREEN_NOTIFICATIONS = "lock_screen_notifications"; private static final String KEY_LOCK_SCREEN_PROFILE_HEADER = "lock_screen_notifications_profile_header"; private static final String KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS = "lock_screen_notifications_profile"; private final String mSettingKey; private final String mWorkSettingCategoryKey; private final String mWorkSettingKey; private RestrictedDropDownPreference mLockscreen; private RestrictedDropDownPreference mLockscreenProfile; Loading @@ -64,7 +64,16 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro private int mLockscreenSelectedValueProfile; public LockScreenNotificationPreferenceController(Context context) { this(context, null, null, null); } public LockScreenNotificationPreferenceController(Context context, String settingKey, String workSettingCategoryKey, String workSettingKey) { super(context); mSettingKey = settingKey; mWorkSettingCategoryKey = workSettingCategoryKey; mWorkSettingKey = workSettingKey; mProfileChallengeUserId = Utils.getManagedProfileId( UserManager.get(context), UserHandle.myUserId()); final LockPatternUtils utils = new LockPatternUtils(context); Loading @@ -79,17 +88,17 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mLockscreen = (RestrictedDropDownPreference) screen.findPreference(KEY_LOCK_SCREEN_NOTIFICATIONS); (RestrictedDropDownPreference) screen.findPreference(mSettingKey); if (mLockscreen == null) { Log.i(TAG, "Preference not found: " + KEY_LOCK_SCREEN_NOTIFICATIONS); Log.i(TAG, "Preference not found: " + mSettingKey); return; } if (mProfileChallengeUserId != UserHandle.USER_NULL) { mLockscreenProfile = (RestrictedDropDownPreference) screen.findPreference( KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS); mWorkSettingKey); } else { removePreference(screen, KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS); removePreference(screen, KEY_LOCK_SCREEN_PROFILE_HEADER); removePreference(screen, mWorkSettingKey); removePreference(screen, mWorkSettingCategoryKey); } mSettingObserver = new SettingObserver(); initLockScreenNotificationPrefDisplay(); Loading Loading @@ -136,7 +145,7 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro private void initLockscreenNotificationPrefForProfile() { if (mLockscreenProfile == null) { Log.i(TAG, "Preference not found: " + KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS); Log.i(TAG, "Preference not found: " + mWorkSettingKey); return; } ArrayList<CharSequence> entries = new ArrayList<>(); Loading Loading @@ -205,8 +214,8 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro @Override public boolean onPreferenceChange(Preference preference, Object newValue) { switch (preference.getKey()) { case KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS: { final String key = preference.getKey(); if (TextUtils.equals(mWorkSettingKey, key)) { final int val = Integer.parseInt((String) newValue); if (val == mLockscreenSelectedValueProfile) { return false; Loading @@ -223,8 +232,7 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro enabled ? 1 : 0, mProfileChallengeUserId); mLockscreenSelectedValueProfile = val; return true; } case KEY_LOCK_SCREEN_NOTIFICATIONS: { } else if (TextUtils.equals(mSettingKey, key)) { final int val = Integer.parseInt((String) newValue); if (val == mLockscreenSelectedValue) { return false; Loading @@ -239,10 +247,8 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro mLockscreenSelectedValue = val; return true; } default: return false; } } private void setRestrictedIfNotificationFeaturesDisabled(CharSequence entry, CharSequence entryValue, int keyguardNotificationFeatures) { Loading Loading @@ -295,6 +301,7 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro final boolean enabled = getLockscreenNotificationsEnabled(mProfileChallengeUserId); final boolean allowPrivate = !mSecureProfile || getLockscreenAllowPrivateNotifications(mProfileChallengeUserId); mLockscreenProfile.setSummary("%s"); mLockscreenSelectedValueProfile = !enabled ? R.string.lock_screen_notifications_summary_disable_profile : (allowPrivate ? R.string.lock_screen_notifications_summary_show_profile Loading src/com/android/settings/security/LockscreenDashboardFragment.java +16 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.settings.security; import android.content.Context; import android.provider.SearchIndexableResource; import android.support.annotation.VisibleForTesting; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.accounts.AddUserWhenLockedPreferenceController; Loading @@ -26,6 +28,7 @@ import com.android.settings.core.lifecycle.Lifecycle; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.notification.LockScreenNotificationPreferenceController; import com.android.settings.search.BaseSearchIndexProvider; import java.util.ArrayList; import java.util.Arrays; import java.util.List; Loading @@ -38,6 +41,15 @@ public class LockscreenDashboardFragment extends DashboardFragment private static final String TAG = "LockscreenDashboardFragment"; @VisibleForTesting static final String KEY_LOCK_SCREEN_NOTIFICATON = "security_setting_lock_screen_notif"; @VisibleForTesting static final String KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE_HEADER = "security_setting_lock_screen_notif_work_header"; @VisibleForTesting static final String KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE = "security_setting_lock_screen_notif_work"; private OwnerInfoPreferenceController mOwnerInfoPreferenceController; @Override Loading @@ -60,7 +72,10 @@ public class LockscreenDashboardFragment extends DashboardFragment final List<PreferenceController> controllers = new ArrayList<>(); final Lifecycle lifecycle = getLifecycle(); final LockScreenNotificationPreferenceController notificationController = new LockScreenNotificationPreferenceController(context); new LockScreenNotificationPreferenceController(context, KEY_LOCK_SCREEN_NOTIFICATON, KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE_HEADER, KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE); lifecycle.addObserver(notificationController); controllers.add(notificationController); final AddUserWhenLockedPreferenceController addUserWhenLockedController = Loading tests/robotests/assets/whitelist_duplicate_index_key +0 −1 Original line number Diff line number Diff line add_users_when_locked additional_system_update_settings dashboard_tile_placeholder lock_screen_notifications screen_zoom usage_access No newline at end of file Loading
res/xml/security_lockscreen_settings.xml +23 −12 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ android:title="@string/lockscreen_settings_title"> <com.android.settings.notification.RestrictedDropDownPreference android:key="lock_screen_notifications" android:key="security_setting_lock_screen_notif" android:title="@string/lock_screen_notifications_title" android:summary="@string/summary_placeholder" /> Loading @@ -32,4 +32,15 @@ android:title="@string/owner_info_settings_title" android:summary="@string/owner_info_settings_summary" /> <PreferenceCategory android:key="security_setting_lock_screen_notif_work_header" android:title="@string/profile_section_header"> <com.android.settings.notification.RestrictedDropDownPreference android:key="security_setting_lock_screen_notif_work" android:title="@string/lock_screen_notifications_title" android:summary="@string/summary_placeholder" /> </PreferenceCategory> </PreferenceScreen>
src/com/android/settings/notification/ConfigureNotificationSettings.java +4 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,10 @@ public class ConfigureNotificationSettings extends DashboardFragment { final PulseNotificationPreferenceController pulseController = new PulseNotificationPreferenceController(context); final LockScreenNotificationPreferenceController lockScreenNotificationController = new LockScreenNotificationPreferenceController(context); new LockScreenNotificationPreferenceController(context, "lock_screen_notifications", "lock_screen_notifications_profile_header", "lock_screen_notifications_profile"); if (lifecycle != null) { lifecycle.addObserver(pulseController); lifecycle.addObserver(lockScreenNotificationController); Loading
src/com/android/settings/notification/LockScreenNotificationPreferenceController.java +25 −18 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.os.UserManager; import android.provider.Settings; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import android.text.TextUtils; import android.util.Log; import com.android.internal.widget.LockPatternUtils; Loading @@ -46,11 +47,10 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause { private static final String TAG = "LockScreenNotifPref"; private static final String KEY_LOCK_SCREEN_NOTIFICATIONS = "lock_screen_notifications"; private static final String KEY_LOCK_SCREEN_PROFILE_HEADER = "lock_screen_notifications_profile_header"; private static final String KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS = "lock_screen_notifications_profile"; private final String mSettingKey; private final String mWorkSettingCategoryKey; private final String mWorkSettingKey; private RestrictedDropDownPreference mLockscreen; private RestrictedDropDownPreference mLockscreenProfile; Loading @@ -64,7 +64,16 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro private int mLockscreenSelectedValueProfile; public LockScreenNotificationPreferenceController(Context context) { this(context, null, null, null); } public LockScreenNotificationPreferenceController(Context context, String settingKey, String workSettingCategoryKey, String workSettingKey) { super(context); mSettingKey = settingKey; mWorkSettingCategoryKey = workSettingCategoryKey; mWorkSettingKey = workSettingKey; mProfileChallengeUserId = Utils.getManagedProfileId( UserManager.get(context), UserHandle.myUserId()); final LockPatternUtils utils = new LockPatternUtils(context); Loading @@ -79,17 +88,17 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mLockscreen = (RestrictedDropDownPreference) screen.findPreference(KEY_LOCK_SCREEN_NOTIFICATIONS); (RestrictedDropDownPreference) screen.findPreference(mSettingKey); if (mLockscreen == null) { Log.i(TAG, "Preference not found: " + KEY_LOCK_SCREEN_NOTIFICATIONS); Log.i(TAG, "Preference not found: " + mSettingKey); return; } if (mProfileChallengeUserId != UserHandle.USER_NULL) { mLockscreenProfile = (RestrictedDropDownPreference) screen.findPreference( KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS); mWorkSettingKey); } else { removePreference(screen, KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS); removePreference(screen, KEY_LOCK_SCREEN_PROFILE_HEADER); removePreference(screen, mWorkSettingKey); removePreference(screen, mWorkSettingCategoryKey); } mSettingObserver = new SettingObserver(); initLockScreenNotificationPrefDisplay(); Loading Loading @@ -136,7 +145,7 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro private void initLockscreenNotificationPrefForProfile() { if (mLockscreenProfile == null) { Log.i(TAG, "Preference not found: " + KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS); Log.i(TAG, "Preference not found: " + mWorkSettingKey); return; } ArrayList<CharSequence> entries = new ArrayList<>(); Loading Loading @@ -205,8 +214,8 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro @Override public boolean onPreferenceChange(Preference preference, Object newValue) { switch (preference.getKey()) { case KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS: { final String key = preference.getKey(); if (TextUtils.equals(mWorkSettingKey, key)) { final int val = Integer.parseInt((String) newValue); if (val == mLockscreenSelectedValueProfile) { return false; Loading @@ -223,8 +232,7 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro enabled ? 1 : 0, mProfileChallengeUserId); mLockscreenSelectedValueProfile = val; return true; } case KEY_LOCK_SCREEN_NOTIFICATIONS: { } else if (TextUtils.equals(mSettingKey, key)) { final int val = Integer.parseInt((String) newValue); if (val == mLockscreenSelectedValue) { return false; Loading @@ -239,10 +247,8 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro mLockscreenSelectedValue = val; return true; } default: return false; } } private void setRestrictedIfNotificationFeaturesDisabled(CharSequence entry, CharSequence entryValue, int keyguardNotificationFeatures) { Loading Loading @@ -295,6 +301,7 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro final boolean enabled = getLockscreenNotificationsEnabled(mProfileChallengeUserId); final boolean allowPrivate = !mSecureProfile || getLockscreenAllowPrivateNotifications(mProfileChallengeUserId); mLockscreenProfile.setSummary("%s"); mLockscreenSelectedValueProfile = !enabled ? R.string.lock_screen_notifications_summary_disable_profile : (allowPrivate ? R.string.lock_screen_notifications_summary_show_profile Loading
src/com/android/settings/security/LockscreenDashboardFragment.java +16 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.settings.security; import android.content.Context; import android.provider.SearchIndexableResource; import android.support.annotation.VisibleForTesting; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.accounts.AddUserWhenLockedPreferenceController; Loading @@ -26,6 +28,7 @@ import com.android.settings.core.lifecycle.Lifecycle; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.notification.LockScreenNotificationPreferenceController; import com.android.settings.search.BaseSearchIndexProvider; import java.util.ArrayList; import java.util.Arrays; import java.util.List; Loading @@ -38,6 +41,15 @@ public class LockscreenDashboardFragment extends DashboardFragment private static final String TAG = "LockscreenDashboardFragment"; @VisibleForTesting static final String KEY_LOCK_SCREEN_NOTIFICATON = "security_setting_lock_screen_notif"; @VisibleForTesting static final String KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE_HEADER = "security_setting_lock_screen_notif_work_header"; @VisibleForTesting static final String KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE = "security_setting_lock_screen_notif_work"; private OwnerInfoPreferenceController mOwnerInfoPreferenceController; @Override Loading @@ -60,7 +72,10 @@ public class LockscreenDashboardFragment extends DashboardFragment final List<PreferenceController> controllers = new ArrayList<>(); final Lifecycle lifecycle = getLifecycle(); final LockScreenNotificationPreferenceController notificationController = new LockScreenNotificationPreferenceController(context); new LockScreenNotificationPreferenceController(context, KEY_LOCK_SCREEN_NOTIFICATON, KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE_HEADER, KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE); lifecycle.addObserver(notificationController); controllers.add(notificationController); final AddUserWhenLockedPreferenceController addUserWhenLockedController = Loading
tests/robotests/assets/whitelist_duplicate_index_key +0 −1 Original line number Diff line number Diff line add_users_when_locked additional_system_update_settings dashboard_tile_placeholder lock_screen_notifications screen_zoom usage_access No newline at end of file