summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/downloads/Helpers.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/providers/downloads/Helpers.java')
-rw-r--r--src/com/android/providers/downloads/Helpers.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/com/android/providers/downloads/Helpers.java b/src/com/android/providers/downloads/Helpers.java
index 565aa52e..f75b627f 100644
--- a/src/com/android/providers/downloads/Helpers.java
+++ b/src/com/android/providers/downloads/Helpers.java
@@ -34,18 +34,22 @@ import android.app.job.JobInfo;
import android.app.job.JobScheduler;
import android.content.ComponentName;
import android.content.Context;
+import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
+import android.os.Bundle;
import android.os.Environment;
import android.os.FileUtils;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Process;
+import android.os.RemoteException;
import android.os.SystemClock;
import android.os.UserHandle;
import android.os.storage.StorageManager;
import android.os.storage.StorageVolume;
import android.provider.Downloads;
+import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.Log;
import android.util.LongSparseArray;
@@ -489,6 +493,26 @@ public class Helpers {
throw new IOException("Failed to generate an available filename");
}
+ public static Uri convertToMediaStoreDownloadsUri(Uri mediaStoreUri) {
+ final String volumeName = MediaStore.getVolumeName(mediaStoreUri);
+ final long id = android.content.ContentUris.parseId(mediaStoreUri);
+ return MediaStore.Downloads.getContentUri(volumeName, id);
+ }
+
+ // TODO: Move it to MediaStore.
+ public static Uri triggerMediaScan(android.content.ContentProviderClient mediaProviderClient,
+ File file) {
+ try {
+ final Bundle in = new Bundle();
+ in.putParcelable(Intent.EXTRA_STREAM, Uri.fromFile(file));
+ final Bundle out = mediaProviderClient.call(MediaStore.SCAN_FILE_CALL, null, in);
+ return out.getParcelable(Intent.EXTRA_STREAM);
+ } catch (RemoteException e) {
+ // Should not happen
+ }
+ return null;
+ }
+
public static boolean isFileInExternalAndroidDirs(String filePath) {
return PATTERN_ANDROID_DIRS.matcher(filePath).matches();
}