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