expo-image-picker 14.7.0 → 14.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -10,6 +10,10 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 14.7.1 — 2023-12-19
14
+
15
+ _This version does not introduce any user-facing changes._
16
+
13
17
  ## 14.7.0 — 2023-11-14
14
18
 
15
19
  ### 🛠 Breaking changes
@@ -3,7 +3,7 @@ apply plugin: 'kotlin-android'
3
3
  apply plugin: 'maven-publish'
4
4
 
5
5
  group = 'host.exp.exponent'
6
- version = '14.7.0'
6
+ version = '14.7.1'
7
7
 
8
8
  def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
9
9
  if (expoModulesCorePlugin.exists()) {
@@ -94,7 +94,7 @@ android {
94
94
  namespace "expo.modules.imagepicker"
95
95
  defaultConfig {
96
96
  versionCode 22
97
- versionName "14.7.0"
97
+ versionName "14.7.1"
98
98
  }
99
99
  }
100
100
 
@@ -66,7 +66,7 @@ object ImagePickerConstants {
66
66
  ExifInterface.TAG_SUBSEC_TIME,
67
67
  ExifInterface.TAG_SUBSEC_TIME_DIGITIZED,
68
68
  ExifInterface.TAG_SUBSEC_TIME_ORIGINAL,
69
- ExifInterface.TAG_USER_COMMENT,
69
+ ExifInterface.TAG_USER_COMMENT
70
70
  ),
71
71
  "double" to listOf(
72
72
  ExifInterface.TAG_APERTURE_VALUE,
@@ -100,7 +100,7 @@ object ImagePickerConstants {
100
100
  ExifInterface.TAG_WHITE_POINT,
101
101
  ExifInterface.TAG_X_RESOLUTION,
102
102
  ExifInterface.TAG_Y_CB_CR_COEFFICIENTS,
103
- ExifInterface.TAG_Y_RESOLUTION,
103
+ ExifInterface.TAG_Y_RESOLUTION
104
104
  ),
105
105
  "int" to listOf(
106
106
  ExifInterface.TAG_BITS_PER_SAMPLE,
@@ -157,7 +157,7 @@ object ImagePickerConstants {
157
157
  ExifInterface.TAG_TRANSFER_FUNCTION,
158
158
  ExifInterface.TAG_WHITE_BALANCE,
159
159
  ExifInterface.TAG_Y_CB_CR_POSITIONING,
160
- ExifInterface.TAG_Y_CB_CR_SUB_SAMPLING,
160
+ ExifInterface.TAG_Y_CB_CR_SUB_SAMPLING
161
161
  )
162
162
  )
163
163
  }
@@ -36,7 +36,6 @@ private const val moduleName = "ExponentImagePicker"
36
36
  class ImagePickerModule : Module() {
37
37
 
38
38
  override fun definition() = ModuleDefinition {
39
-
40
39
  Name(moduleName)
41
40
 
42
41
  // region JS API
@@ -85,15 +84,15 @@ class ImagePickerModule : Module() {
85
84
 
86
85
  RegisterActivityContracts {
87
86
  cameraLauncher = registerForActivityResult(
88
- CameraContract(this@ImagePickerModule),
87
+ CameraContract(this@ImagePickerModule)
89
88
  ) { input, result -> handleResultUponActivityDestruction(result, input.options) }
90
89
 
91
90
  imageLibraryLauncher = registerForActivityResult(
92
- ImageLibraryContract(this@ImagePickerModule),
91
+ ImageLibraryContract(this@ImagePickerModule)
93
92
  ) { input, result -> handleResultUponActivityDestruction(result, input.options) }
94
93
 
95
94
  cropImageLauncher = registerForActivityResult(
96
- CropImageContract(this@ImagePickerModule),
95
+ CropImageContract(this@ImagePickerModule)
97
96
  ) { input, result -> handleResultUponActivityDestruction(result, input.options) }
98
97
  }
99
98
  }
@@ -127,7 +126,7 @@ class ImagePickerModule : Module() {
127
126
  */
128
127
  private suspend fun launchContract(
129
128
  pickerLauncher: suspend () -> ImagePickerContractResult,
130
- options: ImagePickerOptions,
129
+ options: ImagePickerOptions
131
130
  ): Any {
132
131
  return try {
133
132
  var result = launchPicker(pickerLauncher)
@@ -161,7 +160,7 @@ class ImagePickerModule : Module() {
161
160
  * Launches picker (image library or camera)
162
161
  */
163
162
  private suspend fun launchPicker(
164
- pickerLauncher: suspend () -> ImagePickerContractResult,
163
+ pickerLauncher: suspend () -> ImagePickerContractResult
165
164
  ): ImagePickerContractResult.Success = withContext(Dispatchers.IO) {
166
165
  when (val pickingResult = pickerLauncher()) {
167
166
  is ImagePickerContractResult.Success -> pickingResult
@@ -89,5 +89,5 @@ internal enum class MediaTypes(val value: String) : Enumerable {
89
89
 
90
90
  internal enum class CameraType(val value: String) : Enumerable {
91
91
  BACK("back"),
92
- FRONT("front"),
92
+ FRONT("front")
93
93
  }
@@ -27,5 +27,5 @@ internal class ImagePickerResponse(
27
27
 
28
28
  enum class MediaType(val value: String) : Enumerable {
29
29
  VIDEO("video"),
30
- IMAGE("image"),
30
+ IMAGE("image")
31
31
  }
@@ -148,7 +148,7 @@ internal fun Intent.getAllDataUris(): List<Uri> {
148
148
  internal suspend fun copyFile(
149
149
  sourceUri: Uri,
150
150
  targetFile: File,
151
- contentResolver: ContentResolver,
151
+ contentResolver: ContentResolver
152
152
  ) = runInterruptible {
153
153
  val targetUri = Uri.fromFile(targetFile)
154
154
 
@@ -184,7 +184,7 @@ internal suspend fun copyExifData(
184
184
  ExifInterface.TAG_IMAGE_WIDTH,
185
185
  ExifInterface.TAG_PIXEL_X_DIMENSION,
186
186
  ExifInterface.TAG_PIXEL_Y_DIMENSION,
187
- ExifInterface.TAG_ORIENTATION,
187
+ ExifInterface.TAG_ORIENTATION
188
188
  )
189
189
 
190
190
  try {
@@ -13,14 +13,14 @@ import expo.modules.kotlin.providers.AppContextProvider
13
13
  import java.io.File
14
14
 
15
15
  internal class MediaHandler(
16
- private val appContextProvider: AppContextProvider,
16
+ private val appContextProvider: AppContextProvider
17
17
  ) {
18
18
  private val context: Context
19
19
  get() = requireNotNull(appContextProvider.appContext.reactContext) { "React Application Context is null" }
20
20
 
21
21
  internal suspend fun readExtras(
22
22
  bareResult: List<Pair<MediaType, Uri>>,
23
- options: ImagePickerOptions,
23
+ options: ImagePickerOptions
24
24
  ): ImagePickerResponse {
25
25
  val results = bareResult.map { (mediaType, uri) ->
26
26
  when (mediaType) {
@@ -40,7 +40,7 @@ internal class MediaHandler(
40
40
 
41
41
  private suspend fun handleImage(
42
42
  sourceUri: Uri,
43
- options: ImagePickerOptions,
43
+ options: ImagePickerOptions
44
44
  ): ImagePickerAsset {
45
45
  val exporter: ImageExporter = if (options.quality == ImagePickerConstants.MAXIMUM_QUALITY) {
46
46
  RawImageExporter()
@@ -69,7 +69,7 @@ internal class MediaHandler(
69
69
  mimeType = mimeType,
70
70
  base64 = base64,
71
71
  exif = exif,
72
- assetId = sourceUri.getMediaStoreAssetId(),
72
+ assetId = sourceUri.getMediaStoreAssetId()
73
73
  )
74
74
  }
75
75
 
@@ -87,7 +87,7 @@ internal class MediaHandler(
87
87
  }
88
88
 
89
89
  private suspend fun handleVideo(
90
- sourceUri: Uri,
90
+ sourceUri: Uri
91
91
  ): ImagePickerAsset {
92
92
  val outputFile = createOutputFile(cacheDirectory, ".mp4")
93
93
  copyFile(sourceUri, outputFile, context.contentResolver)
@@ -22,7 +22,7 @@ import java.io.Serializable
22
22
  * @see [androidx.activity.result.contract.ActivityResultContracts.TakePicture] or [androidx.activity.result.contract.ActivityResultContracts.CaptureVideo]
23
23
  */
24
24
  internal class CameraContract(
25
- private val appContextProvider: AppContextProvider,
25
+ private val appContextProvider: AppContextProvider
26
26
  ) : AppContextActivityResultContract<CameraContractOptions, ImagePickerContractResult> {
27
27
  private val contentResolver: ContentResolver
28
28
  get() = requireNotNull(appContextProvider.appContext.reactContext) {
@@ -62,5 +62,5 @@ internal data class CameraContractOptions(
62
62
  * Destination file in a form of content-[Uri] to save results coming from camera to.
63
63
  */
64
64
  val uri: String,
65
- val options: ImagePickerOptions,
65
+ val options: ImagePickerOptions
66
66
  ) : Serializable
@@ -22,7 +22,7 @@ import kotlinx.coroutines.runBlocking
22
22
  import java.io.Serializable
23
23
 
24
24
  internal class CropImageContract(
25
- private val appContextProvider: AppContextProvider,
25
+ private val appContextProvider: AppContextProvider
26
26
  ) : AppContextActivityResultContract<CropImageContractOptions, ImagePickerContractResult> {
27
27
  override fun createIntent(context: Context, input: CropImageContractOptions) = Intent(context, CropImageActivity::class.java).apply {
28
28
  val mediaType = expo.modules.imagepicker.getType(context.contentResolver, input.sourceUri.toUri())
@@ -69,5 +69,5 @@ internal class CropImageContract(
69
69
 
70
70
  internal data class CropImageContractOptions(
71
71
  val sourceUri: String,
72
- val options: ImagePickerOptions,
72
+ val options: ImagePickerOptions
73
73
  ) : Serializable
@@ -26,7 +26,7 @@ import java.io.Serializable
26
26
  * @see [androidx.activity.result.contract.ActivityResultContracts.GetMultipleContents]
27
27
  */
28
28
  internal class ImageLibraryContract(
29
- private val appContextProvider: AppContextProvider,
29
+ private val appContextProvider: AppContextProvider
30
30
  ) : AppContextActivityResultContract<ImageLibraryContractOptions, ImagePickerContractResult> {
31
31
  private val contentResolver: ContentResolver
32
32
  get() = appContextProvider.appContext.reactContext?.contentResolver
@@ -22,7 +22,7 @@ import java.util.concurrent.ExecutionException
22
22
  class CompressionImageExporter(
23
23
  private val appContextProvider: AppContextProvider,
24
24
  @FloatRange(from = 0.0, to = 1.0)
25
- quality: Double,
25
+ quality: Double
26
26
  ) : ImageExporter {
27
27
  private val compressQuality = (quality * 100).toInt()
28
28
 
@@ -28,7 +28,7 @@ interface ImageExporter {
28
28
  open class ImageExportResult(
29
29
  val width: Int,
30
30
  val height: Int,
31
- private val imageFile: File,
31
+ private val imageFile: File
32
32
  ) {
33
33
  /**
34
34
  * Allows accessing the underlying byte data in a lazy manner.
@@ -11,7 +11,7 @@ class RawImageExporter : ImageExporter {
11
11
  override suspend fun exportAsync(
12
12
  source: Uri,
13
13
  output: File,
14
- contentResolver: ContentResolver,
14
+ contentResolver: ContentResolver
15
15
  ): ImageExportResult {
16
16
  copyFile(source, output, contentResolver)
17
17
  val exifInterface = ExifInterface(output.absolutePath)
@@ -29,7 +29,7 @@ class RawImageExporter : ImageExporter {
29
29
  return ImageExportResult(
30
30
  width,
31
31
  height,
32
- output,
32
+ output
33
33
  )
34
34
  }
35
35
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-image-picker",
3
- "version": "14.7.0",
3
+ "version": "14.7.1",
4
4
  "description": "Provides access to the system's UI for selecting images and videos from the phone's library or taking a photo with the camera.",
5
5
  "main": "build/ImagePicker.js",
6
6
  "types": "build/ImagePicker.d.ts",
@@ -44,5 +44,5 @@
44
44
  "peerDependencies": {
45
45
  "expo": "*"
46
46
  },
47
- "gitHead": "3142a086578deffd8704a8f1b6f0f661527d836c"
47
+ "gitHead": "43f1b4f8a5a9bca649e4e7ca6e4155482a162431"
48
48
  }