Fix tests to verify CloudMediaProvider query cursors
Test: atest CloudPhotoPickerTest
Bug: 195008834
Change-Id: I2004c63adf26898496b5df465572d751510a9bdc
diff --git a/tests/PhotoPicker/src/android/photopicker/cts/PickerProviderMediaGenerator.java b/tests/PhotoPicker/src/android/photopicker/cts/PickerProviderMediaGenerator.java
index 561823b..5110781 100644
--- a/tests/PhotoPicker/src/android/photopicker/cts/PickerProviderMediaGenerator.java
+++ b/tests/PhotoPicker/src/android/photopicker/cts/PickerProviderMediaGenerator.java
@@ -17,9 +17,13 @@
package android.photopicker.cts;
import static android.provider.CloudMediaProviderContract.AlbumColumns;
+import static android.provider.CloudMediaProviderContract.EXTRA_ALBUM_ID;
+import static android.provider.CloudMediaProviderContract.EXTRA_MEDIA_COLLECTION_ID;
+import static android.provider.CloudMediaProviderContract.EXTRA_SYNC_GENERATION;
import static android.provider.CloudMediaProviderContract.MediaCollectionInfo;
import static android.provider.CloudMediaProviderContract.MediaColumns;
+import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
@@ -87,18 +91,24 @@
mPrivateDir = context.getFilesDir();
}
- public Cursor getMedia(long generation, String albumdId, String mimeType, long sizeBytes) {
- return getCursor(mMedia, generation, albumdId, mimeType, sizeBytes,
+ public Cursor getMedia(long generation, String albumId, String mimeType, long sizeBytes) {
+ final Cursor cursor = getCursor(mMedia, generation, albumId, mimeType, sizeBytes,
/* isDeleted */ false);
+ cursor.setExtras(buildCursorExtras(mCollectionId, generation > 0, albumId != null));
+ return cursor;
}
public Cursor getAlbums(String mimeType, long sizeBytes) {
- return getCursor(mAlbums, mimeType, sizeBytes);
+ final Cursor cursor = getCursor(mAlbums, mimeType, sizeBytes);
+ cursor.setExtras(buildCursorExtras(mCollectionId, false, false));
+ return cursor;
}
public Cursor getDeletedMedia(long generation) {
- return getCursor(mDeletedMedia, generation, /* albumId */ null, /* mimeType */ null,
- /* sizeBytes */ 0, /* isDeleted */ true);
+ final Cursor cursor = getCursor(mDeletedMedia, generation, /* albumId */ null,
+ /* mimeType */ null, /* sizeBytes */ 0, /* isDeleted */ true);
+ cursor.setExtras(buildCursorExtras(mCollectionId, generation > 0, false));
+ return cursor;
}
public Bundle getMediaCollectionInfo() {
@@ -117,6 +127,23 @@
mAccountConfigurationIntent = configIntent;
}
+ public Bundle buildCursorExtras(String mediaCollectionId, boolean honoredSyncGeneration,
+ boolean honoredAlbumdId) {
+ final ArrayList<String> honoredArgs = new ArrayList<>();
+ if (honoredSyncGeneration) {
+ honoredArgs.add(EXTRA_SYNC_GENERATION);
+ }
+ if (honoredAlbumdId) {
+ honoredArgs.add(EXTRA_ALBUM_ID);
+ }
+
+ final Bundle bundle = new Bundle();
+ bundle.putString(EXTRA_MEDIA_COLLECTION_ID, mediaCollectionId);
+ bundle.putStringArrayList(ContentResolver.EXTRA_HONORED_ARGS, honoredArgs);
+
+ return bundle;
+ }
+
public void addMedia(String localId, String cloudId, String albumId, String mimeType,
int standardMimeTypeExtension, long sizeBytes, boolean isFavorite, int resId)
throws IOException {