List of usage examples for android.provider DocumentsContract buildChildDocumentsUriUsingTree
public static Uri buildChildDocumentsUriUsingTree(Uri treeUri, String parentDocumentId)
From source file:com.anthonymandra.support.v4.provider.DocumentsContractApi21.java
public static Uri[] listFiles(Context context, Uri self) { final ContentResolver resolver = context.getContentResolver(); final Uri childrenUri = DocumentsContract.buildChildDocumentsUriUsingTree(self, DocumentsContract.getDocumentId(self)); final ArrayList<Uri> results = new ArrayList<Uri>(); Cursor c = null;// ww w . j av a 2s .c o m try { c = resolver.query(childrenUri, new String[] { DocumentsContract.Document.COLUMN_DOCUMENT_ID }, null, null, null); while (c.moveToNext()) { final String documentId = c.getString(0); final Uri documentUri = DocumentsContract.buildDocumentUriUsingTree(self, documentId); results.add(documentUri); } } catch (Exception e) { Log.w(TAG, "Failed query: " + e); } finally { closeQuietly(c); } return results.toArray(new Uri[results.size()]); }
From source file:com.example.android.directoryselection.DirectorySelectionFragment.java
/** * Updates the current directory of the uri passed as an argument and its children directories. * And updates the {@link #mRecyclerView} depending on the contents of the children. * * @param uri The uri of the current directory. *///from w w w. j a va 2s . c o m //VisibileForTesting void updateDirectoryEntries(Uri uri) { ContentResolver contentResolver = getActivity().getContentResolver(); Uri docUri = DocumentsContract.buildDocumentUriUsingTree(uri, DocumentsContract.getTreeDocumentId(uri)); Uri childrenUri = DocumentsContract.buildChildDocumentsUriUsingTree(uri, DocumentsContract.getTreeDocumentId(uri)); Cursor docCursor = contentResolver.query(docUri, new String[] { Document.COLUMN_DISPLAY_NAME, Document.COLUMN_MIME_TYPE }, null, null, null); try { while (docCursor.moveToNext()) { Log.d(TAG, "found doc =" + docCursor.getString(0) + ", mime=" + docCursor.getString(1)); mCurrentDirectoryUri = uri; mCurrentDirectoryTextView.setText(docCursor.getString(0)); mCreateDirectoryButton.setEnabled(true); } } finally { closeQuietly(docCursor); } Cursor childCursor = contentResolver.query(childrenUri, new String[] { Document.COLUMN_DISPLAY_NAME, Document.COLUMN_MIME_TYPE }, null, null, null); try { List<DirectoryEntry> directoryEntries = new ArrayList<>(); while (childCursor.moveToNext()) { Log.d(TAG, "found child=" + childCursor.getString(0) + ", mime=" + childCursor.getString(1)); DirectoryEntry entry = new DirectoryEntry(); entry.fileName = childCursor.getString(0); entry.mimeType = childCursor.getString(1); directoryEntries.add(entry); } mAdapter.setDirectoryEntries(directoryEntries); mAdapter.notifyDataSetChanged(); } finally { closeQuietly(childCursor); } }
From source file:com.example.android.scopeddirectoryaccess.ScopedDirectoryAccessFragment.java
private void updateDirectoryEntries(Uri uri) { mDirectoryEntries.clear();/* ww w .jav a2 s . c o m*/ ContentResolver contentResolver = getActivity().getContentResolver(); Uri docUri = DocumentsContract.buildDocumentUriUsingTree(uri, DocumentsContract.getTreeDocumentId(uri)); Uri childrenUri = DocumentsContract.buildChildDocumentsUriUsingTree(uri, DocumentsContract.getTreeDocumentId(uri)); try (Cursor docCursor = contentResolver.query(docUri, DIRECTORY_SELECTION, null, null, null)) { while (docCursor != null && docCursor.moveToNext()) { mCurrentDirectoryTextView.setText(docCursor .getString(docCursor.getColumnIndex(DocumentsContract.Document.COLUMN_DISPLAY_NAME))); } } try (Cursor childCursor = contentResolver.query(childrenUri, DIRECTORY_SELECTION, null, null, null)) { while (childCursor != null && childCursor.moveToNext()) { DirectoryEntry entry = new DirectoryEntry(); entry.fileName = childCursor .getString(childCursor.getColumnIndex(DocumentsContract.Document.COLUMN_DISPLAY_NAME)); entry.mimeType = childCursor .getString(childCursor.getColumnIndex(DocumentsContract.Document.COLUMN_MIME_TYPE)); mDirectoryEntries.add(entry); } if (mDirectoryEntries.isEmpty()) { mNothingInDirectoryTextView.setVisibility(View.VISIBLE); } else { mNothingInDirectoryTextView.setVisibility(View.GONE); } mAdapter.setDirectoryEntries(mDirectoryEntries); mAdapter.notifyDataSetChanged(); } }