Skip to content
This repository was archived by the owner on Mar 16, 2019. It is now read-only.

Commit d600648

Browse files
committed
Change media scanner interface
1 parent ca416b9 commit d600648

File tree

3 files changed

+34
-30
lines changed

3 files changed

+34
-30
lines changed

src/android/src/main/java/com/RNFetchBlob/RNFetchBlob.java

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -125,21 +125,19 @@ public void stat(String path, Callback callback) {
125125
}
126126

127127
@ReactMethod
128-
public void scanFile(ReadableMap pairs, Callback callback) {
129-
ReadableMapKeySetIterator it = pairs.keySetIterator();
130-
WritableArray path = Arguments.createArray();
131-
WritableArray mimes = Arguments.createArray();
132-
while(it.hasNextKey()) {
133-
String key = pairs.keySetIterator().nextKey();
134-
path.pushString(key);
135-
String mime = pairs.getString(key);
136-
mimes.pushString(mime);
137-
}
138-
String [] p = new String[path.size()];
139-
String [] m = new String[path.size()];
140-
for(int i =0;i<path.size();i++) {
141-
p[i] = path.getString(i);
142-
m[i] = mimes.getString(i);
128+
public void scanFile(ReadableArray pairs, Callback callback) {
129+
int size = pairs.size();
130+
String [] p = new String[size];
131+
String [] m = new String[size];
132+
for(int i=0;i<size;i++) {
133+
ReadableMap pair = pairs.getMap(i);
134+
if(pair.hasKey("path")) {
135+
p[i] = pair.getString("path");
136+
if(pair.hasKey("mime"))
137+
m[i] = pair.getString("mime");
138+
else
139+
m[i] = null;
140+
}
143141
}
144142
new RNFetchBlobFS(this.getReactApplicationContext()).scanFile(p, m, callback);
145143
}

src/android/src/main/java/com/RNFetchBlob/RNFetchBlobFS.java

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.RNFetchBlob;
22

3+
import android.content.Intent;
34
import android.media.MediaScannerConnection;
45
import android.net.Uri;
56
import android.os.AsyncTask;
@@ -414,15 +415,23 @@ static void stat(String path, Callback callback) {
414415
}
415416

416417
void scanFile(String [] path, String[] mimes, final Callback callback) {
417-
try {
418-
MediaScannerConnection.scanFile(mCtx, path, mimes, new MediaScannerConnection.OnScanCompletedListener() {
419-
@Override
420-
public void onScanCompleted(String s, Uri uri) {
421-
callback.invoke(null, true);
422-
}
423-
});
424-
} catch(Exception err) {
425-
callback.invoke(err.getLocalizedMessage(), null);
418+
// try {
419+
// MediaScannerConnection.scanFile(mCtx, path, mimes, new MediaScannerConnection.OnScanCompletedListener() {
420+
// @Override
421+
// public void onScanCompleted(String s, Uri uri) {
422+
// callback.invoke(null, true);
423+
// }
424+
// });
425+
// } catch(Exception err) {
426+
// callback.invoke(err.getLocalizedMessage(), null);
427+
// }
428+
for(String p : path) {
429+
File file = new File(p);
430+
Uri uri = Uri.fromFile(file);
431+
Intent scanFileIntent = new Intent(
432+
Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);
433+
mCtx.sendBroadcast(scanFileIntent);
434+
callback.invoke();
426435
}
427436
}
428437

src/fs.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -175,15 +175,12 @@ function stat(path:string):Promise<RNFetchBlobFile> {
175175

176176
/**
177177
* Android only method, request media scanner to scan the file.
178-
* @param {Array<string>} paths Paths of files to be scanned.
179-
* @param {Array<string>} mimes Optional array of MIME types for each path.
180-
* If mimeType is null, then the mimeType will be
181-
* inferred from the file extension.
178+
* @param {Array<Object<string, string>>} Array contains Key value pairs with key `path` and `mime`.
182179
* @return {Promise}
183180
*/
184-
function scanFile(paths:Array<string>, mimes: Array<string>):Promise {
181+
function scanFile(pairs:any):Promise {
185182
return new Promise((resolve, reject) => {
186-
RNFetchBlob.scanFile(path, (err) => {
183+
RNFetchBlob.scanFile(pairs, (err) => {
187184
if(err)
188185
reject(err)
189186
else

0 commit comments

Comments
 (0)