diff options
author | Jeff Sharkey <jsharkey@android.com> | 2016-04-25 14:35:00 -0600 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2016-04-25 14:35:00 -0600 |
commit | 5210cd471512336a99a327e87160a518857fab35 (patch) | |
tree | b938426523f4b654219fd97bfcd4c62ffcdf9210 /src/com/android/providers/downloads/DownloadScanner.java | |
parent | d12dd16fd9ebe0dbbb4d95ee75292d8516204e8e (diff) | |
parent | 3a5f5eafb34eaa4963c801882148e8f61514a61b (diff) | |
download | android_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.java | 21 |
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(); + } } } |