Skip to content

Commit ef62d75

Browse files
CatlandorDrjacky
andauthored
Bugfix: File Not Found Exception (#88) (#89)
* Get file extension from mimeTypeMap * Use single file if there is just one file within the list (gallery provider) * Updated dependencies versions * Release 2.3.21 Co-authored-by: Hossein Abbasi <[email protected]>
1 parent bbba9d3 commit ef62d75

File tree

3 files changed

+36
-8
lines changed

3 files changed

+36
-8
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.github.drjacky.imagepicker
2+
3+
import android.net.Uri
4+
import androidx.test.platform.app.InstrumentationRegistry
5+
import com.github.drjacky.imagepicker.util.FileUriUtils
6+
import org.junit.Assert.assertEquals
7+
import org.junit.Test
8+
9+
class FileUriUtilsTests {
10+
@Test
11+
fun getImageExtension_AndroidPhotoPickerPath_returnsJpg() {
12+
val uri =
13+
Uri.parse("content://media/picker/0/com.android.providers.media.photopicker/media/1000000033")
14+
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
15+
16+
val extension = FileUriUtils.getImageExtension(appContext, uri)
17+
18+
assertEquals(".jpg", extension)
19+
}
20+
}

imagepicker/src/main/kotlin/com/github/drjacky/imagepicker/ImagePickerActivity.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import android.content.Intent
66
import android.net.Uri
77
import android.os.Bundle
88
import android.util.Log
9+
import androidx.activity.addCallback
910
import androidx.activity.result.contract.ActivityResultContracts
1011
import androidx.appcompat.app.AppCompatActivity
1112
import com.github.drjacky.imagepicker.constant.ImageProvider
@@ -72,6 +73,11 @@ class ImagePickerActivity : AppCompatActivity() {
7273
super.onCreate(savedInstanceState)
7374
restoreInstanceState(savedInstanceState)
7475
loadBundle(savedInstanceState)
76+
77+
onBackPressedDispatcher.addCallback(this) {
78+
// Back is pressed... Finishing the activity
79+
setResultCancel()
80+
}
7581
}
7682

7783
/**
@@ -146,13 +152,6 @@ class ImagePickerActivity : AppCompatActivity() {
146152
mGalleryProvider?.onRequestPermissionsResult(requestCode)
147153
}
148154

149-
/**
150-
* Handle Activity Back Press
151-
*/
152-
override fun onBackPressed() {
153-
setResultCancel()
154-
}
155-
156155
/**
157156
* {@link CameraProvider} and {@link GalleryProvider} Result will be available here.
158157
*

imagepicker/src/main/kotlin/com/github/drjacky/imagepicker/provider/GalleryProvider.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,16 @@ class GalleryProvider(
168168
fileList!!.add(uri)
169169
}
170170
activity.selectedNumberOfImages = fileList!!.size
171-
activity.setMultipleImage(fileList!!)
171+
172+
try {
173+
if (activity.selectedNumberOfImages == 1) {
174+
activity.setImage(fileList!!.single(), isCamera = false)
175+
} else {
176+
activity.setMultipleImage(fileList!!)
177+
}
178+
} catch (ex: IOException) {
179+
setError(R.string.error_failed_pick_gallery_image)
180+
}
172181
} ?: run {
173182
val uri = data?.data
174183
if (uri != null) {

0 commit comments

Comments
 (0)