summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/downloads/DownloadScanner.java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2016-04-25 14:35:00 -0600
committerJeff Sharkey <jsharkey@android.com>2016-04-25 14:35:00 -0600
commit5210cd471512336a99a327e87160a518857fab35 (patch)
treeb938426523f4b654219fd97bfcd4c62ffcdf9210 /src/com/android/providers/downloads/DownloadScanner.java
parentd12dd16fd9ebe0dbbb4d95ee75292d8516204e8e (diff)
parent3a5f5eafb34eaa4963c801882148e8f61514a61b (diff)
downloadandroid_packages_providers_DownloadProvider-5210cd471512336a99a327e87160a518857fab35.tar.gz
android_packages_providers_DownloadProvider-5210cd471512336a99a327e87160a518857fab35.tar.bz2
android_packages_providers_DownloadProvider-5210cd471512336a99a327e87160a518857fab35.zip
resolve merge conflicts of 3a5f5ea to nyc-dev-plus-aosp
Change-Id: Ib1bf6fc558789dcf9bcf81cea19e551ca9b49642
Diffstat (limited to 'src/com/android/providers/downloads/DownloadScanner.java')
-rw-r--r--src/com/android/providers/downloads/DownloadScanner.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/com/android/providers/downloads/DownloadScanner.java b/src/com/android/providers/downloads/DownloadScanner.java
index ca795062..37f51143 100644
--- a/src/com/android/providers/downloads/DownloadScanner.java
+++ b/src/com/android/providers/downloads/DownloadScanner.java
@@ -35,6 +35,8 @@ import com.android.internal.annotations.GuardedBy;
import com.google.common.collect.Maps;
import java.util.HashMap;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
/**
* Manages asynchronous scanning of completed downloads.
@@ -66,11 +68,26 @@ public class DownloadScanner implements MediaScannerConnectionClient {
@GuardedBy("mConnection")
private HashMap<String, ScanRequest> mPending = Maps.newHashMap();
+ private CountDownLatch mLatch;
+
public DownloadScanner(Context context) {
mContext = context;
mConnection = new MediaScannerConnection(context, this);
}
+ public static void requestScanBlocking(Context context, DownloadInfo info) {
+ final DownloadScanner scanner = new DownloadScanner(context);
+ scanner.mLatch = new CountDownLatch(1);
+ scanner.requestScan(info);
+ try {
+ scanner.mLatch.await(SCAN_TIMEOUT, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ } finally {
+ scanner.shutdown();
+ }
+ }
+
/**
* Check if requested scans are still pending. Scans may timeout after an
* internal duration.
@@ -153,5 +170,9 @@ public class DownloadScanner implements MediaScannerConnectionClient {
// so clean up now-orphaned media entry.
resolver.delete(uri, null, null);
}
+
+ if (mLatch != null) {
+ mLatch.countDown();
+ }
}
}