1 package expo.modules.medialibrary
2 
3 import android.provider.MediaStore.Files.FileColumns.MEDIA_TYPE_AUDIO
4 import android.provider.MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE
5 import android.provider.MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO
6 
7 /*
8  Column order:
9  ID, DisplayName, uri, MediaType, Width, Height, DateTaken, DateModified, Orientation, Duration, BucketId
10  */
11 internal data class MockAsset(
12   val id: Long,
13   val name: String?,
14   val path: String?,
15   val mediaType: Int?,
16   val width: Int?,
17   val height: Int?,
18   val createdDate: Long?,
19   val modifiedDate: Long?,
20   val orientation: Int?,
21   val duration: Int?,
22   val albumId: String?
23 ) {
toColumnArraynull24   fun toColumnArray() = arrayOf(
25     id, name, path, mediaType,
26     width, height,
27     createdDate, modifiedDate,
28     orientation, duration,
29     albumId
30   )
31 }
32 
33 /*
34   Projection column order:
35   Bucket ID, Bucket Display Name
36  */
37 internal data class MockAlbum(
38   val id: String,
39   val name: String,
40 ) {
41   fun toColumnArray() = arrayOf(id, name)
42 }
43 
44 internal object MockData {
45   const val MOCK_ALBUM_ID = "album12"
46 
47   val mockImage = MockAsset(
48     id = 1L,
49     name = "img1.jpg",
50     path = "images/img1.jpg",
51     mediaType = MEDIA_TYPE_IMAGE,
52     width = 100,
53     height = 200,
54     createdDate = 12345678,
55     modifiedDate = 23456789,
56     orientation = 0,
57     duration = null,
58     albumId = MOCK_ALBUM_ID
59   )
60 
61   val mockVideo = MockAsset(
62     id = 2L,
63     name = "vid2.mp4",
64     path = "videos/vid2.mp4",
65     mediaType = MEDIA_TYPE_VIDEO,
66     width = 200,
67     height = 300,
68     createdDate = 12345678,
69     modifiedDate = 23456789,
70     orientation = 0,
71     duration = 3000,
72     albumId = MOCK_ALBUM_ID
73   )
74 
75   val mockAudio = MockAsset(
76     id = 3L,
77     name = "song3.mp3",
78     path = "audio/song3.mp3",
79     mediaType = MEDIA_TYPE_AUDIO,
80     width = 0,
81     height = 0,
82     createdDate = 12345678,
83     modifiedDate = 23456789,
84     orientation = null,
85     duration = 10000,
86     albumId = null
87   )
88 
89   val mockAlbum = MockAlbum(
90     id = MOCK_ALBUM_ID,
91     name = "TestAlbum"
92   )
93 }
94