diff --git a/app/src/main/java/kr/co/vividnext/sodalive/common/ImagePickerCropper.kt b/app/src/main/java/kr/co/vividnext/sodalive/common/ImagePickerCropper.kt index 8699b604..b1167d73 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/common/ImagePickerCropper.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/common/ImagePickerCropper.kt @@ -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)