Ver código fonte

Change system dir API on android

Ben Hsieh 8 anos atrás
pai
commit
4ea5080a0d

+ 5
- 4
src/android/src/main/java/com/RNFetchBlob/RNFetchBlob.java Ver arquivo

21
 
21
 
22
 import java.io.ByteArrayOutputStream;
22
 import java.io.ByteArrayOutputStream;
23
 import java.io.File;
23
 import java.io.File;
24
+import java.util.HashMap;
25
+import java.util.Map;
24
 
26
 
25
 import cz.msebera.android.httpclient.HttpEntity;
27
 import cz.msebera.android.httpclient.HttpEntity;
26
 import cz.msebera.android.httpclient.entity.AbstractHttpEntity;
28
 import cz.msebera.android.httpclient.entity.AbstractHttpEntity;
43
         return "RNFetchBlob";
45
         return "RNFetchBlob";
44
     }
46
     }
45
 
47
 
46
-    @ReactMethod
47
-    public void getEnvironmentDirs(Callback callback) {
48
-        ReactApplicationContext ctx = this.getReactApplicationContext();
49
-        RNFetchBlobFS.getSystemfolders(ctx, callback);
48
+    @Override
49
+    public Map<String, Object> getConstants() {
50
+        return RNFetchBlobFS.getSystemfolders(this.getReactApplicationContext());
50
     }
51
     }
51
 
52
 
52
     @ReactMethod
53
     @ReactMethod

+ 12
- 21
src/android/src/main/java/com/RNFetchBlob/RNFetchBlobFS.java Ver arquivo

51
     /**
51
     /**
52
      * Static method that returns system folders to JS context
52
      * Static method that returns system folders to JS context
53
      * @param ctx   React Native application context
53
      * @param ctx   React Native application context
54
-     * @param callback  Javascript callback function
55
      */
54
      */
56
-    static public void getSystemfolders(ReactApplicationContext ctx, Callback callback) {
57
-        callback.invoke(
58
-                // document folder
59
-                ctx.getFilesDir().getAbsolutePath(),
60
-                // cache folder
61
-                ctx.getCacheDir().getAbsolutePath(),
62
-                // SD card folder
63
-                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath(),
64
-                // Download folder
65
-                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath(),
66
-                // Picture
67
-                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath(),
68
-                // Music
69
-                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getAbsolutePath(),
70
-                // Movies
71
-                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).getAbsolutePath(),
72
-                // Ringtones
73
-                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_RINGTONES).getAbsolutePath()
74
-        );
55
+    static public Map<String, Object> getSystemfolders(ReactApplicationContext ctx) {
56
+        Map<String, Object> res = new HashMap<>();
57
+        res.put("DocumentDir", ctx.getFilesDir().getAbsolutePath());
58
+        res.put("CacheDir", ctx.getCacheDir().getAbsolutePath());
59
+        res.put("DCIMDir", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath());
60
+        res.put("PictureDir", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath());
61
+        res.put("MusicDir", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getAbsolutePath());
62
+        res.put("DownloadDir", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath());
63
+        res.put("MovieDir", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).getAbsolutePath());
64
+        res.put("RingtoneDir", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_RINGTONES).getAbsolutePath());
65
+        return res;
75
     }
66
     }
76
 
67
 
77
     /**
68
     /**
431
             Intent scanFileIntent = new Intent(
422
             Intent scanFileIntent = new Intent(
432
                     Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);
423
                     Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);
433
             mCtx.sendBroadcast(scanFileIntent);
424
             mCtx.sendBroadcast(scanFileIntent);
434
-            callback.invoke();
425
+            callback.invoke(null, true);
435
         }
426
         }
436
     }
427
     }
437
 
428