diff options
Diffstat (limited to 'tests/PhotoPicker/src/android/photopicker/cts/util/PhotoPickerFilesUtils.java')
-rw-r--r-- | tests/PhotoPicker/src/android/photopicker/cts/util/PhotoPickerFilesUtils.java | 59 |
1 files changed, 49 insertions, 10 deletions
diff --git a/tests/PhotoPicker/src/android/photopicker/cts/util/PhotoPickerFilesUtils.java b/tests/PhotoPicker/src/android/photopicker/cts/util/PhotoPickerFilesUtils.java index 37a44f99915..3705ddd8fb1 100644 --- a/tests/PhotoPicker/src/android/photopicker/cts/util/PhotoPickerFilesUtils.java +++ b/tests/PhotoPicker/src/android/photopicker/cts/util/PhotoPickerFilesUtils.java @@ -19,10 +19,12 @@ package android.photopicker.cts.util; import android.app.UiAutomation; import android.content.Context; import android.net.Uri; +import android.os.Bundle; import android.os.FileUtils; import android.os.UserHandle; import android.photopicker.cts.R; import android.provider.MediaStore; +import android.provider.cts.ProviderTestUtils; import android.provider.cts.media.MediaStoreUtils; import androidx.test.InstrumentationRegistry; @@ -42,11 +44,29 @@ public class PhotoPickerFilesUtils { public static void createImages(int count, int userId, List<Uri> uriList) throws Exception { + createImages(count, userId, uriList, false); + } + + public static void createImages(int count, int userId, List<Uri> uriList, boolean isFavorite) + throws Exception { for (int i = 0; i < count; i++) { - final Uri uri = createImage(userId); + final Uri uri = createImage(userId, isFavorite); uriList.add(uri); clearMediaOwner(uri, userId); } + // Wait for Picker db sync to complete + MediaStore.waitForIdle(InstrumentationRegistry.getContext().getContentResolver()); + } + + public static void createDNGVideos(int count, int userId, List<Uri> uriList) + throws Exception { + for (int i = 0; i < count; i++) { + final Uri uri = createDNGVideo(userId); + uriList.add(uri); + clearMediaOwner(uri, userId); + } + // Wait for Picker db sync to complete + MediaStore.waitForIdle(InstrumentationRegistry.getContext().getContentResolver()); } public static void createVideos(int count, int userId, List<Uri> uriList) @@ -56,11 +76,16 @@ public class PhotoPickerFilesUtils { uriList.add(uri); clearMediaOwner(uri, userId); } + // Wait for Picker db sync to complete + MediaStore.waitForIdle(InstrumentationRegistry.getContext().getContentResolver()); } - public static void deleteMedia(Uri uri, int userId) throws Exception { - final String cmd = String.format("content delete --uri %s --user %d", uri, userId); - ShellUtils.runShellCommand(cmd); + public static void deleteMedia(Uri uri, Context context) throws Exception { + try { + ProviderTestUtils.setOwner(uri, context.getPackageName()); + context.getContentResolver().delete(uri, Bundle.EMPTY); + } catch (Exception ignored) { + } } private static void clearMediaOwner(Uri uri, int userId) throws Exception { @@ -69,19 +94,26 @@ public class PhotoPickerFilesUtils { ShellUtils.runShellCommand(cmd); } + private static Uri createDNGVideo(int userId) throws Exception { + final Uri uri = stageMedia(R.raw.test_video_dng, + MediaStore.Video.Media.EXTERNAL_CONTENT_URI, "video/mp4", userId); + return uri; + } + private static Uri createVideo(int userId) throws Exception { - final Uri uri = stageMedia(R.raw.testvideo_meta, + final Uri uri = stageMedia(R.raw.test_video, MediaStore.Video.Media.EXTERNAL_CONTENT_URI, "video/mp4", userId); return uri; } - private static Uri createImage(int userId) throws Exception { + private static Uri createImage(int userId, boolean isFavorite) throws Exception { final Uri uri = stageMedia(R.raw.lg_g4_iso_800_jpg, - MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/jpeg", userId); + MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/jpeg", userId, isFavorite); return uri; } - private static Uri stageMedia(int resId, Uri collectionUri, String mimeType, int userId) throws + private static Uri stageMedia(int resId, Uri collectionUri, String mimeType, int userId, + boolean isFavorite) throws Exception { UiAutomation uiAutomation = InstrumentationRegistry.getInstrumentation().getUiAutomation(); uiAutomation.adoptShellPermissionIdentity( @@ -92,17 +124,24 @@ public class PhotoPickerFilesUtils { final Context userContext = userId == context.getUserId() ? context : context.createPackageContextAsUser("android", /* flags= */ 0, UserHandle.of(userId)); - return stageMedia(resId, collectionUri, mimeType, userContext); + return stageMedia(resId, collectionUri, mimeType, userContext, isFavorite); } finally { uiAutomation.dropShellPermissionIdentity(); } } - private static Uri stageMedia(int resId, Uri collectionUri, String mimeType, Context context) + private static Uri stageMedia(int resId, Uri collectionUri, String mimeType, int userId) throws + Exception { + return stageMedia(resId, collectionUri, mimeType, userId, false); + } + + private static Uri stageMedia(int resId, Uri collectionUri, String mimeType, Context context, + boolean isFavorite) throws IOException { final String displayName = DISPLAY_NAME_PREFIX + System.nanoTime(); final MediaStoreUtils.PendingParams params = new MediaStoreUtils.PendingParams( collectionUri, displayName, mimeType); + params.setIsFavorite(isFavorite); final Uri pendingUri = MediaStoreUtils.createPending(context, params); try (MediaStoreUtils.PendingSession session = MediaStoreUtils.openPending(context, pendingUri)) { |