summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2018-10-02 10:17:45 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-10-02 10:17:45 +0000
commit52ac7e2d211c056fa7202ea81246a6f975d64df4 (patch)
treecb913ca1690bc1a96ad2732c98396107a7953046 /core/java/android
parent77460ad149639dab8711740aaa9e01a290e72e19 (diff)
parent9f5a059039ed225ace8c13082881a5452c62b4d7 (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.java33
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()