Create "on lock screen notifications" in Privacy

Test: visual, robotest
Bug: 116628158
Change-Id: I056f3734c591f8b300ae1003364ed4c1c2b2f9e3
This commit is contained in:
tmfang
2018-11-20 17:53:41 +08:00
parent 4942fd2aff
commit e541def5c5
2 changed files with 61 additions and 0 deletions

View File

@@ -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<AbstractPreferenceController> createPreferenceControllers(Context context) {
return buildPreferenceControllers(context, getSettingsLifecycle());
}
private static List<AbstractPreferenceController> buildPreferenceControllers(
Context context, Lifecycle lifecycle) {
final List<AbstractPreferenceController> 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<AbstractPreferenceController> createPreferenceControllers(
Context context) {
return buildPreferenceControllers(context, null);
}
};
}