diff --git a/res/xml/privacy_dashboard_settings.xml b/res/xml/privacy_dashboard_settings.xml index 5d11936bf9f..79e2e714dc7 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 dd4c8fa03f5..91e85b3a3e6 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); + } }; }