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,9 +81,6 @@ class ImagePickerCropper(
 | 
			
		||||
 | 
			
		||||
    /** 외부에서 호출: 선택 → 크롭 시작 */
 | 
			
		||||
    fun launch() {
 | 
			
		||||
        if (excludeGif) {
 | 
			
		||||
            openDocument.launch(arrayOf("image/png", "image/jpg", "image/jpeg"))
 | 
			
		||||
        } else {
 | 
			
		||||
        if (ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable(context)) {
 | 
			
		||||
            pickPhoto.launch(
 | 
			
		||||
                PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly)
 | 
			
		||||
@@ -98,7 +89,6 @@ class ImagePickerCropper(
 | 
			
		||||
            pickContent.launch("image/*")
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** 임시 파일 삭제 */
 | 
			
		||||
    fun cleanup() {
 | 
			
		||||
@@ -108,14 +98,19 @@ class ImagePickerCropper(
 | 
			
		||||
 | 
			
		||||
    private fun handlePickedUri(source: Uri) {
 | 
			
		||||
        if (isGifUri(source)) {
 | 
			
		||||
            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