diff --git a/api/current.txt b/api/current.txt index 2e99eafc35133..7ce77cf177ebb 100644 --- a/api/current.txt +++ b/api/current.txt @@ -32077,6 +32077,7 @@ package android.provider { field public static final java.lang.String EXTRA_LOADING = "loading"; field public static final java.lang.String EXTRA_ORIENTATION = "android.provider.extra.ORIENTATION"; field public static final java.lang.String EXTRA_PROMPT = "android.provider.extra.PROMPT"; + field public static final java.lang.String EXTRA_INITIAL_URI = "android.provider.extra.INITIAL_URI"; field public static final java.lang.String PROVIDER_INTERFACE = "android.content.action.DOCUMENTS_PROVIDER"; } diff --git a/api/system-current.txt b/api/system-current.txt index d077808322e59..200e0d857098e 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -34734,6 +34734,7 @@ package android.provider { field public static final java.lang.String EXTRA_LOADING = "loading"; field public static final java.lang.String EXTRA_ORIENTATION = "android.provider.extra.ORIENTATION"; field public static final java.lang.String EXTRA_PROMPT = "android.provider.extra.PROMPT"; + field public static final java.lang.String EXTRA_INITIAL_URI = "android.provider.extra.INITIAL_URI"; field public static final java.lang.String PROVIDER_INTERFACE = "android.content.action.DOCUMENTS_PROVIDER"; } diff --git a/api/test-current.txt b/api/test-current.txt index fdaf7a3b72d76..c224c52369119 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -32156,6 +32156,7 @@ package android.provider { field public static final java.lang.String EXTRA_LOADING = "loading"; field public static final java.lang.String EXTRA_ORIENTATION = "android.provider.extra.ORIENTATION"; field public static final java.lang.String EXTRA_PROMPT = "android.provider.extra.PROMPT"; + field public static final java.lang.String EXTRA_INITIAL_URI = "android.provider.extra.INITIAL_URI"; field public static final java.lang.String PROVIDER_INTERFACE = "android.content.action.DOCUMENTS_PROVIDER"; } diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index 4eecd48df646e..9015c4b340fa3 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -3120,10 +3120,11 @@ public class Intent implements Parcelable, Cloneable { * URIs that can be opened with * {@link ContentResolver#openFileDescriptor(Uri, String)}. *
- * 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. *
* 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 @@ public class Intent implements Parcelable, Cloneable { * URIs that can be opened with * {@link ContentResolver#openFileDescriptor(Uri, String)}. *
- * 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. *
* 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 @@ public class Intent implements Parcelable, Cloneable { * {@link DocumentsContract#buildChildDocumentsUriUsingTree(Uri, String)} * with the returned URI. *
- * 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. *
* 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 2dcf220b8ac40..f86193ff1b7c0 100644 --- a/core/java/android/provider/DocumentsContract.java +++ b/core/java/android/provider/DocumentsContract.java @@ -105,6 +105,22 @@ public final class DocumentsContract { /** {@hide} */ 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. + * + *
Applicable to {@link Intent} with actions: + *
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.