|
@@ -13,6 +13,8 @@ import com.datarecovery.master.utils.xfile.XFileSearch;
|
|
|
|
|
|
|
|
import java.io.InputStream;
|
|
import java.io.InputStream;
|
|
|
import java.util.HashSet;
|
|
import java.util.HashSet;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
import atmob.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
|
import atmob.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
|
|
import atmob.reactivex.rxjava3.core.BackpressureStrategy;
|
|
import atmob.reactivex.rxjava3.core.BackpressureStrategy;
|
|
@@ -21,7 +23,7 @@ import atmob.reactivex.rxjava3.core.FlowableOnSubscribe;
|
|
|
|
|
|
|
|
public class FilesSearch {
|
|
public class FilesSearch {
|
|
|
|
|
|
|
|
- public static Flowable<DocumentFile> search(Context context, int... acceptCategory) {
|
|
|
|
|
|
|
+ public static Flowable<List<DocumentFile>> search(Context context, int... acceptCategory) {
|
|
|
if (acceptCategory == null || acceptCategory.length == 0) {
|
|
if (acceptCategory == null || acceptCategory.length == 0) {
|
|
|
return Flowable.empty();
|
|
return Flowable.empty();
|
|
|
}
|
|
}
|
|
@@ -68,14 +70,15 @@ public class FilesSearch {
|
|
|
return categories.contains(tag);
|
|
return categories.contains(tag);
|
|
|
})
|
|
})
|
|
|
.map(xFile -> new DocumentFile(xFile, (Integer) xFile.getTag()))
|
|
.map(xFile -> new DocumentFile(xFile, (Integer) xFile.getTag()))
|
|
|
|
|
+ .buffer(200, TimeUnit.MILLISECONDS)
|
|
|
|
|
+ .observeOn(AndroidSchedulers.mainThread())
|
|
|
.doOnSubscribe(subscription -> {
|
|
.doOnSubscribe(subscription -> {
|
|
|
subscription.request(Long.MAX_VALUE);
|
|
subscription.request(Long.MAX_VALUE);
|
|
|
|
|
|
|
|
acquireWakeLock(context);
|
|
acquireWakeLock(context);
|
|
|
})
|
|
})
|
|
|
.doOnCancel(() -> releaseWakeLock(context))
|
|
.doOnCancel(() -> releaseWakeLock(context))
|
|
|
- .doOnTerminate(() -> releaseWakeLock(context))
|
|
|
|
|
- .subscribeOn(AndroidSchedulers.mainThread());
|
|
|
|
|
|
|
+ .doOnTerminate(() -> releaseWakeLock(context));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private static void releaseWakeLock(Context context) {
|
|
private static void releaseWakeLock(Context context) {
|