fix(ImagePickerCropper): openDocument 제거, excludeGif가 true이고 GIF 선택시 "GIF는 지원하지 않습니다." 메시지 반환
This commit is contained in:
@@ -56,12 +56,6 @@ class ImagePickerCropper(
|
|||||||
else handlePickedUri(uri)
|
else handlePickedUri(uri)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val openDocument =
|
|
||||||
caller.registerForActivityResult(ActivityResultContracts.OpenDocument()) { uri ->
|
|
||||||
if (uri == null) onError(CancellationException("이미지 선택을 취소했습니다."))
|
|
||||||
else handlePickedUri(uri)
|
|
||||||
}
|
|
||||||
|
|
||||||
// uCrop 결과 수신
|
// uCrop 결과 수신
|
||||||
private val cropResult =
|
private val cropResult =
|
||||||
caller.registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
caller.registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
||||||
@@ -87,16 +81,12 @@ class ImagePickerCropper(
|
|||||||
|
|
||||||
/** 외부에서 호출: 선택 → 크롭 시작 */
|
/** 외부에서 호출: 선택 → 크롭 시작 */
|
||||||
fun launch() {
|
fun launch() {
|
||||||
if (excludeGif) {
|
if (ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable(context)) {
|
||||||
openDocument.launch(arrayOf("image/png", "image/jpg", "image/jpeg"))
|
pickPhoto.launch(
|
||||||
|
PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly)
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
if (ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable(context)) {
|
pickContent.launch("image/*")
|
||||||
pickPhoto.launch(
|
|
||||||
PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly)
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
pickContent.launch("image/*")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,14 +98,19 @@ class ImagePickerCropper(
|
|||||||
|
|
||||||
private fun handlePickedUri(source: Uri) {
|
private fun handlePickedUri(source: Uri) {
|
||||||
if (isGifUri(source)) {
|
if (isGifUri(source)) {
|
||||||
// 1) 캐시에 gif 그대로 복사
|
if (excludeGif) {
|
||||||
val gifFile = copyUriToCacheAsGif(source)
|
onError(CancellationException("GIF는 지원하지 않습니다."))
|
||||||
lastCroppedFile = gifFile
|
} else {
|
||||||
val fileUri = FileProvider.getUriForFile(
|
// 1) 캐시에 gif 그대로 복사
|
||||||
context, "${BuildConfig.APPLICATION_ID}.fileprovider", gifFile
|
val gifFile = copyUriToCacheAsGif(source)
|
||||||
)
|
lastCroppedFile = gifFile
|
||||||
// 2) 바로 반환 (크롭 생략)
|
val fileUri = FileProvider.getUriForFile(
|
||||||
onSuccess(gifFile, fileUri)
|
context, "${BuildConfig.APPLICATION_ID}.fileprovider", gifFile
|
||||||
|
)
|
||||||
|
|
||||||
|
// 2) 바로 반환 (크롭 생략)
|
||||||
|
onSuccess(gifFile, fileUri)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// 기존 그대로: uCrop 9:20 실행
|
// 기존 그대로: uCrop 9:20 실행
|
||||||
startCrop(source)
|
startCrop(source)
|
||||||
|
|||||||
Reference in New Issue
Block a user