Merge "Wait until any background events are processed."
diff --git a/api/test-current.txt b/api/test-current.txt
index b43917d..6fe79c4 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -2348,6 +2348,7 @@
method public static android.net.Uri scanFile(android.content.Context, java.io.File);
method public static android.net.Uri scanFileFromShell(android.content.Context, java.io.File);
method public static void scanVolume(android.content.Context, java.io.File);
+ method public static void waitForIdle(android.content.Context);
}
public final class Settings {
diff --git a/core/java/android/provider/MediaStore.java b/core/java/android/provider/MediaStore.java
index 2a590ce..2299aad 100644
--- a/core/java/android/provider/MediaStore.java
+++ b/core/java/android/provider/MediaStore.java
@@ -137,6 +137,8 @@
public static final String VOLUME_EXTERNAL_PRIMARY = "external_primary";
/** {@hide} */
+ public static final String WAIT_FOR_IDLE_CALL = "wait_for_idle";
+ /** {@hide} */
public static final String SCAN_FILE_CALL = "scan_file";
/** {@hide} */
public static final String SCAN_VOLUME_CALL = "scan_volume";
@@ -3562,6 +3564,17 @@
/** @hide */
@TestApi
+ public static void waitForIdle(Context context) {
+ final ContentResolver resolver = context.getContentResolver();
+ try (ContentProviderClient client = resolver.acquireContentProviderClient(AUTHORITY)) {
+ client.call(WAIT_FOR_IDLE_CALL, null, null);
+ } catch (RemoteException e) {
+ throw e.rethrowAsRuntimeException();
+ }
+ }
+
+ /** @hide */
+ @TestApi
public static Uri scanFile(Context context, File file) {
return scan(context, SCAN_FILE_CALL, file, false);
}