app / com.gmail.ayteneve93.apex.kakaopay_preassignment.controller / ImageOperationController

ImageOperationController

class ImageOperationController

Glide 를 활용해서 이미지 URL 을 바탕으로 이미지 파일을 참조, 압축하고 안드로이드 기기의 Download 폴더에 저장하거나 다른 사람에게 공유할 수 있는 기능을 지원합니다. DI를 통해 관리되는 SingleTon 클래스입니다.

Types

ImageOperation

enum class ImageOperation

Operation Enum 으로 공유와 다운로드가 있습니다.

Constructors

<init>

ImageOperationController(application: Application)

Glide 를 활용해서 이미지 URL 을 바탕으로 이미지 파일을 참조, 압축하고 안드로이드 기기의 Download 폴더에 저장하거나 다른 사람에게 공유할 수 있는 기능을 지원합니다. DI를 통해 관리되는 SingleTon 클래스입니다.

Properties

application

val application: Application

DI를 통해 받아오는 Constructor Field 입니다. sendBroadcast 메소드를 위해 사용합니다.

mClonedImageModelMap

val mClonedImageModelMap: HashMap<String, KakaoImageModel>

mCompositeDisposable

val mCompositeDisposable: CompositeDisposable

Rx 작업 종료 후 Disposable 객체를 모아두었다 한 번에 처리하기 위한 CompositeDisposable 입니다.

mDownloadDirectory

val mDownloadDirectory: File

이미지 파일이 다운로드 될 외장 디렉토리입니다.

mImageModelMap

val mImageModelMap: HashMap<String, KakaoImageModel>

다운로드 혹은 공유할 이미지 모델들을 임시 저장해두는 Map 객체입니다.

mIsImageOnSharing

var mIsImageOnSharing: Boolean

이미지 공유 작업이 진행중임을 알리는 Boolean 객체입니다.

mIsOnOperation

var mIsOnOperation: ObservableField<Boolean>

이미지 다운로드/압축 작업이 진행중임을 알리는 Observable Boolean 객체입니다.

mShareDirectory

val mShareDirectory: File

이미지 파일을 외부 App과 공유하기 위해 임시로 저장하는 디렉토리입니다.

Functions

addImageModel

fun addImageModel(imageModel: KakaoImageModel): KakaoImageModel?

이미지 모델을 추가하는 메소드입니다.

checkPermsiionAndLoadImagesForOperation

fun checkPermsiionAndLoadImagesForOperation(imageOperation: ImageOperation): Unit

이미지 로딩 작업을 시작하기 전 TedPermission 으로 Storage 권한 획득여부를 점검합니다.

clearDisposable

fun clearDisposable(): Unit

compositeDisposable 에 입력된 Disposable 들을 모두 제거합니다.

clearImageModels

fun clearImageModels(): Unit

추가된 모든 이미지 모델을 제거하는 메소드입니다.

clearSharedDriectory

fun clearSharedDriectory(): Unit

임시 공유 파일들을 제거하고 compositeDisposable 에 입력된 Disposable 들을 모두 제거합니다.

isImageModelExists

fun isImageModelExists(imageModel: KakaoImageModel): Boolean

이미지 모델을 추가하기 전에 이미 등록되어있는지 확인하는 메소드입니다.

loadImageTo

fun loadImageTo(imageOperation: ImageOperation): Unit

Rx Completable 에 Glide 프로세스를 등록해서 사용합니다. 이미지 모델에서 imageUrl 을 추출하여 네트워크에서 이미지 Resource 를 추출하고(Bitmap) 이를 .jpg 로 압축 후 저장 혹은 공유합니다.

notifyAndroidNewImageAdded

fun notifyAndroidNewImageAdded(imageFile: File): Unit

외장 메모리에 이미지가 저장되었다면 안드로이드 시스템에 새로운 파일이 추가되었음을 알립니다.

removeImageModel

fun removeImageModel(imageModel: KakaoImageModel): KakaoImageModel?

이미지 모델을 제거하는 메소드입니다.

runRetardedImageOperation

fun runRetardedImageOperation(doStart: Boolean, prefImageOperation: PreDefinedValues? = null): Unit

와이파이 연결상태 예외처리 결과 후처리 메소드입니다.

startDownload

fun startDownload(): Unit

다운로드 절차를 시작합니다.

startShare

fun startShare(): Unit

공유 절차를 시작합니다.