MCPcopy Create free account
hub / github.com/Acode-Foundation/Acode / listDir

Method listDir

src/plugins/sdcard/src/android/SDcard.java:925–1010  ·  view source on GitHub ↗
(String src, String parentId, CallbackContext callback)

Source from the content-addressed store, hash-verified

923 }
924
925 private void listDir(String src, String parentId, CallbackContext callback) {
926 cordova
927 .getThreadPool()
928 .execute(
929 new Runnable() {
930 public void run() {
931 Uri srcUri = Uri.parse(src);
932 ContentResolver contentResolver = context.getContentResolver();
933 String parentDocId = parentId;
934
935 if (parentDocId == null) {
936 parentDocId = DocumentsContract.getTreeDocumentId(srcUri);
937 }
938
939 Uri childrenUri = DocumentsContract.buildChildDocumentsUriUsingTree(
940 srcUri,
941 parentDocId
942 );
943
944 JSONArray result = new JSONArray();
945 Cursor cursor = null;
946
947 try {
948 cursor = contentResolver.query(
949 childrenUri,
950 new String[] {
951 Document.COLUMN_DOCUMENT_ID,
952 Document.COLUMN_DISPLAY_NAME,
953 Document.COLUMN_MIME_TYPE,
954 },
955 null,
956 null,
957 null
958 );
959 } catch (
960 NullPointerException
961 | SecurityException
962 | IllegalArgumentException
963 | Error e
964 ) {
965 Log.d("sdCard", "lsDir: " + src);
966 Log.e("sdCard", "lsDir", e);
967 callback.error("Cannot read directory.");
968 return;
969 }
970
971 if (cursor == null) {
972 callback.error("Cannot read directory.");
973 return;
974 }
975
976 try {
977 while (cursor.moveToNext()) {
978 JSONObject fileData = new JSONObject();
979 String docId = cursor.getString(0);
980 String name = cursor.getString(1);
981 String mime = cursor.getString(2);
982 boolean isDirectory = isDirectory(mime);

Callers 1

executeMethod · 0.95

Calls 1

executeMethod · 0.45

Tested by

no test coverage detected