Add an extra to pass initial location URI for file choosers.
Test: It builds.
Bug: 30031881
Change-Id: I64e9392b0aec75baee13039642316f7e50494567
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 4eecd48..9015c4b 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -3120,10 +3120,11 @@
* URIs that can be opened with
* {@link ContentResolver#openFileDescriptor(Uri, String)}.
* <p>
- * Callers can set a document URI through {@link #setData(Uri)} to indicate
- * the initial location of documents navigator. System will do its best to
- * launch the navigator in the specified document if it's a folder, or the
- * folder that contains the specified document if not.
+ * Callers can set a document URI through
+ * {@link DocumentsContract#EXTRA_INITIAL_URI} to indicate the initial
+ * location of documents navigator. System will do its best to launch the
+ * navigator in the specified document if it's a folder, or the folder that
+ * contains the specified document if not.
* <p>
* Output: The URI of the item that was picked, returned in
* {@link #getData()}. This must be a {@code content://} URI so that any
@@ -3161,10 +3162,11 @@
* URIs that can be opened with
* {@link ContentResolver#openFileDescriptor(Uri, String)}.
* <p>
- * Callers can set a document URI through {@link #setData(Uri)} to indicate
- * the initial location of documents navigator. System will do its best to
- * launch the navigator in the specified document if it's a folder, or the
- * folder that contains the specified document if not.
+ * Callers can set a document URI through
+ * {@link DocumentsContract#EXTRA_INITIAL_URI} to indicate the initial
+ * location of documents navigator. System will do its best to launch the
+ * navigator in the specified document if it's a folder, or the folder that
+ * contains the specified document if not.
* <p>
* Output: The URI of the item that was created. This must be a
* {@code content://} URI so that any receiver can access it.
@@ -3188,10 +3190,11 @@
* {@link DocumentsContract#buildChildDocumentsUriUsingTree(Uri, String)}
* with the returned URI.
* <p>
- * Callers can set a document URI through {@link #setData(Uri)} to indicate
- * the initial location of documents navigator. System will do its best to
- * initiate the navigator in the specified document if it's a folder, or
- * the folder that contains the specified document if not.
+ * Callers can set a document URI through
+ * {@link DocumentsContract#EXTRA_INITIAL_URI} to indicate the initial
+ * location of documents navigator. System will do its best to launch the
+ * navigator in the specified document if it's a folder, or the folder that
+ * contains the specified document if not.
* <p>
* Output: The URI representing the selected directory tree.
*
diff --git a/core/java/android/provider/DocumentsContract.java b/core/java/android/provider/DocumentsContract.java
index 2dcf220..f86193f 100644
--- a/core/java/android/provider/DocumentsContract.java
+++ b/core/java/android/provider/DocumentsContract.java
@@ -106,6 +106,22 @@
public static final String EXTRA_TARGET_URI = "android.content.extra.TARGET_URI";
/**
+ * Sets the desired initial location visible to user when file chooser is shown.
+ *
+ * <p>Applicable to {@link Intent} with actions:
+ * <ul>
+ * <li>{@link Intent#ACTION_OPEN_DOCUMENT}</li>
+ * <li>{@link Intent#ACTION_CREATE_DOCUMENT}</li>
+ * <li>{@link Intent#ACTION_OPEN_DOCUMENT_TREE}</li>
+ * </ul>
+ *
+ * <p>Location should specify a document URI or a tree URI with document ID. If
+ * this URI identifies a non-directory, document navigator will attempt to use the parent
+ * of the document as the initial location.
+ */
+ public static final String EXTRA_INITIAL_URI = "android.provider.extra.INITIAL_URI";
+
+ /**
* Set this in a DocumentsUI intent to cause a package's own roots to be
* excluded from the roots list.
*/