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,9 +81,6 @@ class ImagePickerCropper(
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    /** 외부에서 호출: 선택 → 크롭 시작 */
 | 
					    /** 외부에서 호출: 선택 → 크롭 시작 */
 | 
				
			||||||
    fun launch() {
 | 
					    fun launch() {
 | 
				
			||||||
        if (excludeGif) {
 | 
					 | 
				
			||||||
            openDocument.launch(arrayOf("image/png", "image/jpg", "image/jpeg"))
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
        if (ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable(context)) {
 | 
					        if (ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable(context)) {
 | 
				
			||||||
            pickPhoto.launch(
 | 
					            pickPhoto.launch(
 | 
				
			||||||
                PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly)
 | 
					                PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly)
 | 
				
			||||||
@@ -98,7 +89,6 @@ class ImagePickerCropper(
 | 
				
			|||||||
            pickContent.launch("image/*")
 | 
					            pickContent.launch("image/*")
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /** 임시 파일 삭제 */
 | 
					    /** 임시 파일 삭제 */
 | 
				
			||||||
    fun cleanup() {
 | 
					    fun cleanup() {
 | 
				
			||||||
@@ -108,14 +98,19 @@ class ImagePickerCropper(
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private fun handlePickedUri(source: Uri) {
 | 
					    private fun handlePickedUri(source: Uri) {
 | 
				
			||||||
        if (isGifUri(source)) {
 | 
					        if (isGifUri(source)) {
 | 
				
			||||||
 | 
					            if (excludeGif) {
 | 
				
			||||||
 | 
					                onError(CancellationException("GIF는 지원하지 않습니다."))
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
                // 1) 캐시에 gif 그대로 복사
 | 
					                // 1) 캐시에 gif 그대로 복사
 | 
				
			||||||
                val gifFile = copyUriToCacheAsGif(source)
 | 
					                val gifFile = copyUriToCacheAsGif(source)
 | 
				
			||||||
                lastCroppedFile = gifFile
 | 
					                lastCroppedFile = gifFile
 | 
				
			||||||
                val fileUri = FileProvider.getUriForFile(
 | 
					                val fileUri = FileProvider.getUriForFile(
 | 
				
			||||||
                    context, "${BuildConfig.APPLICATION_ID}.fileprovider", gifFile
 | 
					                    context, "${BuildConfig.APPLICATION_ID}.fileprovider", gifFile
 | 
				
			||||||
                )
 | 
					                )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // 2) 바로 반환 (크롭 생략)
 | 
					                // 2) 바로 반환 (크롭 생략)
 | 
				
			||||||
                onSuccess(gifFile, fileUri)
 | 
					                onSuccess(gifFile, fileUri)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            // 기존 그대로: uCrop 9:20 실행
 | 
					            // 기존 그대로: uCrop 9:20 실행
 | 
				
			||||||
            startCrop(source)
 | 
					            startCrop(source)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user