diff --git a/core/api/current.txt b/core/api/current.txt index ef886e41d7821..29628345daa02 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -35226,6 +35226,7 @@ package android.provider { field public static final String ACTION_SEARCH_SETTINGS = "android.search.action.SEARCH_SETTINGS"; field public static final String ACTION_SECURITY_SETTINGS = "android.settings.SECURITY_SETTINGS"; field public static final String ACTION_SETTINGS = "android.settings.SETTINGS"; + field public static final String ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK = "android.settings.SETTINGS_LARGE_SCREEN_DEEP_LINK"; field public static final String ACTION_SHOW_REGULATORY_INFO = "android.settings.SHOW_REGULATORY_INFO"; field public static final String ACTION_SHOW_WORK_POLICY_INFO = "android.settings.SHOW_WORK_POLICY_INFO"; field public static final String ACTION_SOUND_SETTINGS = "android.settings.SOUND_SETTINGS"; @@ -35266,6 +35267,9 @@ package android.provider { field public static final String EXTRA_EASY_CONNECT_ERROR_CODE = "android.provider.extra.EASY_CONNECT_ERROR_CODE"; field public static final String EXTRA_INPUT_METHOD_ID = "input_method_id"; field public static final String EXTRA_NOTIFICATION_LISTENER_COMPONENT_NAME = "android.provider.extra.NOTIFICATION_LISTENER_COMPONENT_NAME"; + field public static final String EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI = "android.provider.extra.SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI"; + field public static final String EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_PENDING_INTENT = "android.provider.extra.SETTINGS_LARGE_SCREEN_DEEP_LINK_PENDING_INTENT"; + field public static final String EXTRA_SETTINGS_LARGE_SCREEN_HIGHLIGHT_MENU_KEY = "android.provider.extra.SETTINGS_LARGE_SCREEN_HIGHLIGHT_MENU_KEY"; field public static final String EXTRA_SUB_ID = "android.provider.extra.SUB_ID"; field public static final String EXTRA_WIFI_NETWORK_LIST = "android.provider.extra.WIFI_NETWORK_LIST"; field public static final String EXTRA_WIFI_NETWORK_RESULT_LIST = "android.provider.extra.WIFI_NETWORK_RESULT_LIST"; diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 5395d8d7e9086..ab13e2e4363fe 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -28,12 +28,14 @@ import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.TestApi; import android.annotation.UserIdInt; +import android.app.Activity; import android.app.ActivityThread; import android.app.AppOpsManager; import android.app.Application; import android.app.AutomaticZenRule; import android.app.NotificationChannel; import android.app.NotificationManager; +import android.app.PendingIntent; import android.app.SearchManager; import android.app.WallpaperManager; import android.compat.annotation.UnsupportedAppUsage; @@ -16941,6 +16943,54 @@ public final class Settings { public static final String ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION = "android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION"; + /** + * Activity Action: For system or preinstalled apps to show their {@link Activity} in 2-pane + * mode in Settings app on large screen devices. + *
+ * Input: {@link #EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI} must be included to + * specify the intent for the activity which will be displayed in 2-pane mode in Settings app. + * It's an intent URI string from {@code intent.toUri(Intent.URI_INTENT_SCHEME)}. + * + * Input: {@link #EXTRA_SETTINGS_LARGE_SCREEN_HIGHLIGHT_MENU_KEY} must be included to + * specify a key that indicates the menu item which will be highlighted on settings home menu. + * + * Input: {@link #EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_PENDING_INTENT} is optional. Apps + * can use the {@link PendingIntent} extra to launch into its private {@link Activity}. + *
+ * Output: Nothing. + */ + @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) + public static final String ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK = + "android.settings.SETTINGS_LARGE_SCREEN_DEEP_LINK"; + + /** + * Activity Extra: Specify the intent for the {@link Activity} which will be displayed in 2-pane + * mode in Settings app. It's an intent URI string from + * {@code intent.toUri(Intent.URI_INTENT_SCHEME)}. + *
+ * This must be passed as an extra field to {@link #ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK}. + */ + public static final String EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI = + "android.provider.extra.SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI"; + + /** + * Activity Extra: Specify a key that indicates the menu item which should be highlighted on + * settings home menu. + *
+ * This must be passed as an extra field to {@link #ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK}. + */ + public static final String EXTRA_SETTINGS_LARGE_SCREEN_HIGHLIGHT_MENU_KEY = + "android.provider.extra.SETTINGS_LARGE_SCREEN_HIGHLIGHT_MENU_KEY"; + + /** + * Activity Extra: Apps can use the {@link PendingIntent} extra to launch into its private + * {@link Activity}. + *
+ * This is an optional extra field to {@link #ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK}. + */ + public static final String EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_PENDING_INTENT = + "android.provider.extra.SETTINGS_LARGE_SCREEN_DEEP_LINK_PENDING_INTENT"; + /** * Performs a strict and comprehensive check of whether a calling package is allowed to * write/modify system settings, as the condition differs for pre-M, M+, and