From 9ba0c613a5ee23d70b87bb65cb4638c5afeec6b1 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Wed, 25 Jan 2017 10:31:34 -0500 Subject: [PATCH] Expose intents for launching channel settings. Test: manual Change-Id: I86e12b0ed6b60660b9f6bd1015c186897418560e --- api/current.txt | 3 +++ api/system-current.txt | 3 +++ api/test-current.txt | 3 +++ core/java/android/provider/Settings.java | 32 +++++++++++++++++++++++- 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/api/current.txt b/api/current.txt index eae2c697a6623..3d7782164b455 100644 --- a/api/current.txt +++ b/api/current.txt @@ -33413,6 +33413,7 @@ package android.provider { field public static final java.lang.String ACTION_BLUETOOTH_SETTINGS = "android.settings.BLUETOOTH_SETTINGS"; field public static final java.lang.String ACTION_CAPTIONING_SETTINGS = "android.settings.CAPTIONING_SETTINGS"; field public static final java.lang.String ACTION_CAST_SETTINGS = "android.settings.CAST_SETTINGS"; + field public static final java.lang.String ACTION_CHANNEL_NOTIFICATION_SETTINGS = "android.settings.CHANNEL_NOTIFICATION_SETTINGS"; field public static final java.lang.String ACTION_DATA_ROAMING_SETTINGS = "android.settings.DATA_ROAMING_SETTINGS"; field public static final java.lang.String ACTION_DATE_SETTINGS = "android.settings.DATE_SETTINGS"; field public static final java.lang.String ACTION_DEVICE_INFO_SETTINGS = "android.settings.DEVICE_INFO_SETTINGS"; @@ -33465,8 +33466,10 @@ package android.provider { field public static final java.lang.String AUTHORITY = "settings"; field public static final java.lang.String EXTRA_ACCOUNT_TYPES = "account_types"; field public static final java.lang.String EXTRA_AIRPLANE_MODE_ENABLED = "airplane_mode_enabled"; + field public static final java.lang.String EXTRA_APP_PACKAGE = "android.provider.extra.APP_PACKAGE"; field public static final java.lang.String EXTRA_AUTHORITIES = "authorities"; field public static final java.lang.String EXTRA_BATTERY_SAVER_MODE_ENABLED = "android.settings.extra.battery_saver_mode_enabled"; + field public static final java.lang.String EXTRA_CHANNEL_ID = "android.provider.extra.CHANNEL_ID"; field public static final java.lang.String EXTRA_DO_NOT_DISTURB_MODE_ENABLED = "android.settings.extra.do_not_disturb_mode_enabled"; field public static final java.lang.String EXTRA_DO_NOT_DISTURB_MODE_MINUTES = "android.settings.extra.do_not_disturb_mode_minutes"; field public static final java.lang.String EXTRA_INPUT_METHOD_ID = "input_method_id"; diff --git a/api/system-current.txt b/api/system-current.txt index 81f2c2968bca7..08f6754671688 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -36383,6 +36383,7 @@ package android.provider { field public static final java.lang.String ACTION_BLUETOOTH_SETTINGS = "android.settings.BLUETOOTH_SETTINGS"; field public static final java.lang.String ACTION_CAPTIONING_SETTINGS = "android.settings.CAPTIONING_SETTINGS"; field public static final java.lang.String ACTION_CAST_SETTINGS = "android.settings.CAST_SETTINGS"; + field public static final java.lang.String ACTION_CHANNEL_NOTIFICATION_SETTINGS = "android.settings.CHANNEL_NOTIFICATION_SETTINGS"; field public static final java.lang.String ACTION_CONFIGURE_WIFI_SETTINGS = "android.settings.CONFIGURE_WIFI_SETTINGS"; field public static final java.lang.String ACTION_DATA_ROAMING_SETTINGS = "android.settings.DATA_ROAMING_SETTINGS"; field public static final java.lang.String ACTION_DATE_SETTINGS = "android.settings.DATE_SETTINGS"; @@ -36438,8 +36439,10 @@ package android.provider { field public static final java.lang.String AUTHORITY = "settings"; field public static final java.lang.String EXTRA_ACCOUNT_TYPES = "account_types"; field public static final java.lang.String EXTRA_AIRPLANE_MODE_ENABLED = "airplane_mode_enabled"; + field public static final java.lang.String EXTRA_APP_PACKAGE = "android.provider.extra.APP_PACKAGE"; field public static final java.lang.String EXTRA_AUTHORITIES = "authorities"; field public static final java.lang.String EXTRA_BATTERY_SAVER_MODE_ENABLED = "android.settings.extra.battery_saver_mode_enabled"; + field public static final java.lang.String EXTRA_CHANNEL_ID = "android.provider.extra.CHANNEL_ID"; field public static final java.lang.String EXTRA_DO_NOT_DISTURB_MODE_ENABLED = "android.settings.extra.do_not_disturb_mode_enabled"; field public static final java.lang.String EXTRA_DO_NOT_DISTURB_MODE_MINUTES = "android.settings.extra.do_not_disturb_mode_minutes"; field public static final java.lang.String EXTRA_INPUT_METHOD_ID = "input_method_id"; diff --git a/api/test-current.txt b/api/test-current.txt index 4701c9d82160c..0037fba5d961d 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -33529,6 +33529,7 @@ package android.provider { field public static final java.lang.String ACTION_BLUETOOTH_SETTINGS = "android.settings.BLUETOOTH_SETTINGS"; field public static final java.lang.String ACTION_CAPTIONING_SETTINGS = "android.settings.CAPTIONING_SETTINGS"; field public static final java.lang.String ACTION_CAST_SETTINGS = "android.settings.CAST_SETTINGS"; + field public static final java.lang.String ACTION_CHANNEL_NOTIFICATION_SETTINGS = "android.settings.CHANNEL_NOTIFICATION_SETTINGS"; field public static final java.lang.String ACTION_DATA_ROAMING_SETTINGS = "android.settings.DATA_ROAMING_SETTINGS"; field public static final java.lang.String ACTION_DATE_SETTINGS = "android.settings.DATE_SETTINGS"; field public static final java.lang.String ACTION_DEVICE_INFO_SETTINGS = "android.settings.DEVICE_INFO_SETTINGS"; @@ -33582,8 +33583,10 @@ package android.provider { field public static final java.lang.String AUTHORITY = "settings"; field public static final java.lang.String EXTRA_ACCOUNT_TYPES = "account_types"; field public static final java.lang.String EXTRA_AIRPLANE_MODE_ENABLED = "airplane_mode_enabled"; + field public static final java.lang.String EXTRA_APP_PACKAGE = "android.provider.extra.APP_PACKAGE"; field public static final java.lang.String EXTRA_AUTHORITIES = "authorities"; field public static final java.lang.String EXTRA_BATTERY_SAVER_MODE_ENABLED = "android.settings.extra.battery_saver_mode_enabled"; + field public static final java.lang.String EXTRA_CHANNEL_ID = "android.provider.extra.CHANNEL_ID"; field public static final java.lang.String EXTRA_DO_NOT_DISTURB_MODE_ENABLED = "android.settings.extra.do_not_disturb_mode_enabled"; field public static final java.lang.String EXTRA_DO_NOT_DISTURB_MODE_MINUTES = "android.settings.extra.do_not_disturb_mode_minutes"; field public static final java.lang.String EXTRA_INPUT_METHOD_ID = "input_method_id"; diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index e3da337d9e6a8..5f0e15739424c 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -30,6 +30,7 @@ import android.annotation.UserIdInt; import android.app.ActivityThread; import android.app.AppOpsManager; import android.app.Application; +import android.app.NotificationChannel; import android.app.SearchManager; import android.app.WallpaperManager; import android.content.ComponentName; @@ -1274,12 +1275,42 @@ public final class Settings { /** * Activity Action: Show notification settings for a single app. * + * Input: Optionally, {@link #EXTRA_CHANNEL_ID}, to highlight that channel. * @hide */ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) public static final String ACTION_APP_NOTIFICATION_SETTINGS = "android.settings.APP_NOTIFICATION_SETTINGS"; + /** + * Activity Action: Show notification settings for a single {@link NotificationChannel}. + *

+ * Must be called from an activity. + *

+ * Input: {@link #EXTRA_APP_PACKAGE}, the package containing the channel to display. + * Input: {@link #EXTRA_CHANNEL_ID}, the id of the channel to display. + *

+ * Output: Nothing. + */ + @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) + public static final String ACTION_CHANNEL_NOTIFICATION_SETTINGS + = "android.settings.CHANNEL_NOTIFICATION_SETTINGS"; + + /** + * Activity Extra: The package owner of the notification channel settings to display. + *

+ * This must be passed as an extra field to the {@link #ACTION_CHANNEL_NOTIFICATION_SETTINGS}. + */ + public static final String EXTRA_APP_PACKAGE = "android.provider.extra.APP_PACKAGE"; + + /** + * Activity Extra: The {@link NotificationChannel#getId()} of the notification channel settings + * to display. + *

+ * This must be passed as an extra field to the {@link #ACTION_CHANNEL_NOTIFICATION_SETTINGS}. + */ + public static final String EXTRA_CHANNEL_ID = "android.provider.extra.CHANNEL_ID"; + /** * Activity Action: Show notification redaction settings. * @@ -1290,7 +1321,6 @@ public final class Settings { = "android.settings.ACTION_APP_NOTIFICATION_REDACTION"; /** @hide */ public static final String EXTRA_APP_UID = "app_uid"; - /** @hide */ public static final String EXTRA_APP_PACKAGE = "app_package"; /** * Activity Action: Show a dialog with disabled by policy message.