diff options
| author | Ivan Chiang <chiangi@google.com> | 2019-01-10 19:29:01 +0800 |
|---|---|---|
| committer | Ivan Chiang <chiangi@google.com> | 2019-01-21 15:44:53 +0800 |
| commit | c26d3c28c2f7fd6a77342a0448ae4d59758cfb94 (patch) | |
| tree | 36f49e3a0d37052354581e3e7970d6162471e65a /core/java | |
| parent | 4260098e02c8ea329fc949c1b74c6c974fec8770 (diff) | |
Add new column into Root to get the supported query args
DocumentsContract:
- Add @Public column Root#COLUMN_QUERY_ARGS
- Update java doc
DocumentsProvider:
- Update java doc
FileSystemProvider & ExternalStorageProvider
- Add supported query args into Roots
Bug: 121234248
Test: manual
Change-Id: Ia944200ee1a44d75c9ad683564218e3d0dcef885
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/provider/DocumentsContract.java | 24 | ||||
| -rw-r--r-- | core/java/android/provider/DocumentsProvider.java | 1 | ||||
| -rw-r--r-- | core/java/com/android/internal/content/FileSystemProvider.java | 10 |
3 files changed, 35 insertions, 0 deletions
diff --git a/core/java/android/provider/DocumentsContract.java b/core/java/android/provider/DocumentsContract.java index a323ed1a51cb..9ca023891a4e 100644 --- a/core/java/android/provider/DocumentsContract.java +++ b/core/java/android/provider/DocumentsContract.java @@ -640,6 +640,28 @@ public final class DocumentsContract { public static final String COLUMN_MIME_TYPES = "mime_types"; /** + * Query arguments supported by this root. This column is optional + * and related to {@link #COLUMN_FLAGS} and {@link #FLAG_SUPPORTS_SEARCH}. + * If the flags include {@link #FLAG_SUPPORTS_SEARCH}, and the column is + * {@code null}, the root is assumed to support {@link #QUERY_ARG_DISPLAY_NAME} + * search of {@link Document#COLUMN_DISPLAY_NAME}. Multiple query arguments + * can be separated by a newline. For example, a root supporting + * {@link #QUERY_ARG_MIME_TYPES} and {@link #QUERY_ARG_DISPLAY_NAME} might + * return "android:query-arg-mime-types\nandroid:query-arg-display-name". + * <p> + * Type: STRING + * @see #COLUMN_FLAGS + * @see #FLAG_SUPPORTS_SEARCH + * @see #QUERY_ARG_DISPLAY_NAME + * @see #QUERY_ARG_FILE_SIZE_OVER + * @see #QUERY_ARG_LAST_MODIFIED_AFTER + * @see #QUERY_ARG_MIME_TYPES + * @see DocumentsProvider#querySearchDocuments(String, String[], + * Bundle) + */ + public static final String COLUMN_QUERY_ARGS = "query_args"; + + /** * MIME type for a root. */ public static final String MIME_TYPE_ITEM = "vnd.android.document/root"; @@ -680,6 +702,8 @@ public final class DocumentsContract { * String) * @see DocumentsProvider#querySearchDocuments(String, String, * String[]) + * @see DocumentsProvider#querySearchDocuments(String, String[], + * Bundle) */ public static final int FLAG_SUPPORTS_SEARCH = 1 << 3; diff --git a/core/java/android/provider/DocumentsProvider.java b/core/java/android/provider/DocumentsProvider.java index 70c84f8cc324..ed28cc739467 100644 --- a/core/java/android/provider/DocumentsProvider.java +++ b/core/java/android/provider/DocumentsProvider.java @@ -687,6 +687,7 @@ public abstract class DocumentsProvider extends ContentProvider { * extras {@link Bundle} when any QUERY_ARG_* value was honored * during the preparation of the results. * + * @see Root#COLUMN_QUERY_ARGS * @see ContentResolver#EXTRA_HONORED_ARGS * @see DocumentsContract#EXTRA_LOADING * @see DocumentsContract#EXTRA_INFO diff --git a/core/java/com/android/internal/content/FileSystemProvider.java b/core/java/com/android/internal/content/FileSystemProvider.java index a27dbeae2f3a..18c4b467dfba 100644 --- a/core/java/com/android/internal/content/FileSystemProvider.java +++ b/core/java/com/android/internal/content/FileSystemProvider.java @@ -74,6 +74,16 @@ public abstract class FileSystemProvider extends DocumentsProvider { private static final boolean LOG_INOTIFY = false; + protected static final String SUPPORTED_QUERY_ARGS = joinNewline( + DocumentsContract.QUERY_ARG_DISPLAY_NAME, + DocumentsContract.QUERY_ARG_FILE_SIZE_OVER, + DocumentsContract.QUERY_ARG_LAST_MODIFIED_AFTER, + DocumentsContract.QUERY_ARG_MIME_TYPES); + + private static String joinNewline(String... args) { + return TextUtils.join("\n", args); + } + private String[] mDefaultProjection; @GuardedBy("mObservers") |
