diff --git a/core/api/current.txt b/core/api/current.txt
index 9f4b63de657d8..aeeecf89dd0e2 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -8361,6 +8361,7 @@ package android.appwidget {
field public static final int WIDGET_CATEGORY_HOME_SCREEN = 1; // 0x1
field public static final int WIDGET_CATEGORY_KEYGUARD = 2; // 0x2
field public static final int WIDGET_CATEGORY_SEARCHBOX = 4; // 0x4
+ field public static final int WIDGET_FEATURE_CONFIGURATION_OPTIONAL = 3; // 0x3
field public static final int WIDGET_FEATURE_HIDE_FROM_PICKER = 2; // 0x2
field public static final int WIDGET_FEATURE_RECONFIGURABLE = 1; // 0x1
field public int autoAdvanceViewId;
diff --git a/core/java/android/appwidget/AppWidgetProviderInfo.java b/core/java/android/appwidget/AppWidgetProviderInfo.java
index c4333ac44e345..062076bb15ef3 100644
--- a/core/java/android/appwidget/AppWidgetProviderInfo.java
+++ b/core/java/android/appwidget/AppWidgetProviderInfo.java
@@ -112,10 +112,19 @@ public class AppWidgetProviderInfo implements Parcelable {
*/
public static final int WIDGET_FEATURE_HIDE_FROM_PICKER = 2;
+ /**
+ * The widget provides a default configuration. The host may choose not to launch the provided
+ * configuration activity.
+ *
+ * @see #widgetFeatures
+ */
+ public static final int WIDGET_FEATURE_CONFIGURATION_OPTIONAL = 3;
+
/** @hide */
@IntDef(flag = true, prefix = { "FLAG_" }, value = {
WIDGET_FEATURE_RECONFIGURABLE,
WIDGET_FEATURE_HIDE_FROM_PICKER,
+ WIDGET_FEATURE_CONFIGURATION_OPTIONAL
})
@Retention(RetentionPolicy.SOURCE)
public @interface FeatureFlags {}
@@ -269,6 +278,7 @@ public class AppWidgetProviderInfo implements Parcelable {
*
* @see #WIDGET_FEATURE_RECONFIGURABLE
* @see #WIDGET_FEATURE_HIDE_FROM_PICKER
+ * @see #WIDGET_FEATURE_CONFIGURATION_OPTIONAL
*/
@FeatureFlags
public int widgetFeatures;
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 9bfd5f5e10f89..453beaf0de354 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -7993,6 +7993,9 @@
+
+