diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2018-10-02 10:17:45 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-10-02 10:17:45 +0000 |
| commit | 52ac7e2d211c056fa7202ea81246a6f975d64df4 (patch) | |
| tree | cb913ca1690bc1a96ad2732c98396107a7953046 /core/java/android | |
| parent | 77460ad149639dab8711740aaa9e01a290e72e19 (diff) | |
| parent | 9f5a059039ed225ace8c13082881a5452c62b4d7 (diff) | |
Merge "Add isRootsUri method to check whether the roots uri is valid"
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/provider/DocumentsContract.java | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/core/java/android/provider/DocumentsContract.java b/core/java/android/provider/DocumentsContract.java index ee64ca2b8673..8c40e0e6cb8c 100644 --- a/core/java/android/provider/DocumentsContract.java +++ b/core/java/android/provider/DocumentsContract.java @@ -942,13 +942,26 @@ public final class DocumentsContract { return false; } - /** {@hide} */ + /** + * Test if the given URI represents roots backed by {@link DocumentsProvider}. + * + * @see #buildRootsUri(String) + * + * {@hide} + */ + public static boolean isRootsUri(Context context, @Nullable Uri uri) { + return isRootUri(context, uri, 1 /* pathSize */); + } + + /** + * Test if the given URI represents specific root backed by {@link DocumentsProvider}. + * + * @see #buildRootUri(String, String) + * + * {@hide} + */ public static boolean isRootUri(Context context, @Nullable Uri uri) { - if (isContentUri(uri) && isDocumentsProvider(context, uri.getAuthority())) { - final List<String> paths = uri.getPathSegments(); - return (paths.size() == 2 && PATH_ROOT.equals(paths.get(0))); - } - return false; + return isRootUri(context, uri, 2 /* pathSize */); } /** {@hide} */ @@ -967,6 +980,14 @@ public final class DocumentsContract { return (paths.size() >= 2 && PATH_TREE.equals(paths.get(0))); } + private static boolean isRootUri(Context context, @Nullable Uri uri, int pathSize) { + if (isContentUri(uri) && isDocumentsProvider(context, uri.getAuthority())) { + final List<String> paths = uri.getPathSegments(); + return (paths.size() == pathSize && PATH_ROOT.equals(paths.get(0))); + } + return false; + } + private static boolean isDocumentsProvider(Context context, String authority) { final Intent intent = new Intent(PROVIDER_INTERFACE); final List<ResolveInfo> infos = context.getPackageManager() |
