From e541def5c5c1179431dcf677592422c51861052c Mon Sep 17 00:00:00 2001 From: tmfang Date: Tue, 20 Nov 2018 17:53:41 +0800 Subject: [PATCH] Create "on lock screen notifications" in Privacy Test: visual, robotest Bug: 116628158 Change-Id: I056f3734c591f8b300ae1003364ed4c1c2b2f9e3 --- res/xml/privacy_dashboard_settings.xml | 25 +++++++++++++++ .../settings/privacy/PrivacyDashboardFragment.java | 36 ++++++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/res/xml/privacy_dashboard_settings.xml b/res/xml/privacy_dashboard_settings.xml index 5d11936bf9..79e2e714dc 100644 --- a/res/xml/privacy_dashboard_settings.xml +++ b/res/xml/privacy_dashboard_settings.xml @@ -21,6 +21,7 @@ android:key="privacy_dashboard_page" android:title="@string/privacy_dashboard_title"> + + + + + + + + + + + \ No newline at end of file diff --git a/src/com/android/settings/privacy/PrivacyDashboardFragment.java b/src/com/android/settings/privacy/PrivacyDashboardFragment.java index dd4c8fa03f..91e85b3a3e 100644 --- a/src/com/android/settings/privacy/PrivacyDashboardFragment.java +++ b/src/com/android/settings/privacy/PrivacyDashboardFragment.java @@ -22,7 +22,10 @@ import android.provider.SearchIndexableResource; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; +import com.android.settings.notification.LockScreenNotificationPreferenceController; import com.android.settings.search.BaseSearchIndexProvider; +import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.search.SearchIndexable; import java.util.ArrayList; @@ -31,6 +34,11 @@ import java.util.List; @SearchIndexable public class PrivacyDashboardFragment extends DashboardFragment { private static final String TAG = "PrivacyDashboardFragment"; + private static final String KEY_LOCK_SCREEN_NOTIFICATIONS = "privacy_lock_screen_notifications"; + private static final String KEY_WORK_PROFILE_CATEGORY = + "privacy_work_profile_notifications_category"; + private static final String KEY_NOTIFICATION_WORK_PROFILE_NOTIFICATIONS = + "privacy_lock_screen_work_profile_notifications"; @Override public int getMetricsCategory() { @@ -52,6 +60,28 @@ public class PrivacyDashboardFragment extends DashboardFragment { return R.string.help_url_privacy_dashboard; } + @Override + protected List createPreferenceControllers(Context context) { + return buildPreferenceControllers(context, getSettingsLifecycle()); + } + + private static List buildPreferenceControllers( + Context context, Lifecycle lifecycle) { + final List controllers = new ArrayList<>(); + final LockScreenNotificationPreferenceController notificationController = + new LockScreenNotificationPreferenceController(context, + KEY_LOCK_SCREEN_NOTIFICATIONS, + KEY_WORK_PROFILE_CATEGORY, + KEY_NOTIFICATION_WORK_PROFILE_NOTIFICATIONS); + if (lifecycle != null) { + lifecycle.addObserver(notificationController); + } + controllers.add(notificationController); + + return controllers; + + } + public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @Override @@ -64,5 +94,11 @@ public class PrivacyDashboardFragment extends DashboardFragment { result.add(sir); return result; } + + @Override + public List createPreferenceControllers( + Context context) { + return buildPreferenceControllers(context, null); + } }; } -- 2.11.0