class ImageOperationController
Glide 를 활용해서 이미지 URL 을 바탕으로 이미지 파일을 참조, 압축하고 안드로이드 기기의 Download 폴더에 저장하거나 다른 사람에게 공유할 수 있는 기능을 지원합니다. DI를 통해 관리되는 SingleTon 클래스입니다.
enum class ImageOperation
Operation Enum 으로 공유와 다운로드가 있습니다. |
ImageOperationController(application: Application)
Glide 를 활용해서 이미지 URL 을 바탕으로 이미지 파일을 참조, 압축하고 안드로이드 기기의 Download 폴더에 저장하거나 다른 사람에게 공유할 수 있는 기능을 지원합니다. DI를 통해 관리되는 SingleTon 클래스입니다. |
val application: Application
DI를 통해 받아오는 Constructor Field 입니다. sendBroadcast 메소드를 위해 사용합니다. |
|
val mClonedImageModelMap: HashMap<String, KakaoImageModel> |
|
val mCompositeDisposable: CompositeDisposable
Rx 작업 종료 후 Disposable 객체를 모아두었다 한 번에 처리하기 위한 CompositeDisposable 입니다. |
|
val mDownloadDirectory: File
이미지 파일이 다운로드 될 외장 디렉토리입니다. |
|
val mImageModelMap: HashMap<String, KakaoImageModel>
다운로드 혹은 공유할 이미지 모델들을 임시 저장해두는 Map 객체입니다. |
|
var mIsImageOnSharing: Boolean
이미지 공유 작업이 진행중임을 알리는 Boolean 객체입니다. |
|
var mIsOnOperation: ObservableField<Boolean>
이미지 다운로드/압축 작업이 진행중임을 알리는 Observable Boolean 객체입니다. |
|
val mShareDirectory: File
이미지 파일을 외부 App과 공유하기 위해 임시로 저장하는 디렉토리입니다. |
fun addImageModel(imageModel: KakaoImageModel): KakaoImageModel?
이미지 모델을 추가하는 메소드입니다. |
|
fun checkPermsiionAndLoadImagesForOperation(imageOperation: ImageOperation): Unit
이미지 로딩 작업을 시작하기 전 TedPermission 으로 Storage 권한 획득여부를 점검합니다. |
|
fun clearDisposable(): Unit
compositeDisposable 에 입력된 Disposable 들을 모두 제거합니다. |
|
fun clearImageModels(): Unit
추가된 모든 이미지 모델을 제거하는 메소드입니다. |
|
fun clearSharedDriectory(): Unit
임시 공유 파일들을 제거하고 compositeDisposable 에 입력된 Disposable 들을 모두 제거합니다. |
|
fun isImageModelExists(imageModel: KakaoImageModel): Boolean
이미지 모델을 추가하기 전에 이미 등록되어있는지 확인하는 메소드입니다. |
|
fun loadImageTo(imageOperation: ImageOperation): Unit
Rx Completable 에 Glide 프로세스를 등록해서 사용합니다. 이미지 모델에서 imageUrl 을 추출하여 네트워크에서 이미지 Resource 를 추출하고(Bitmap) 이를 .jpg 로 압축 후 저장 혹은 공유합니다. |
|
fun notifyAndroidNewImageAdded(imageFile: File): Unit
외장 메모리에 이미지가 저장되었다면 안드로이드 시스템에 새로운 파일이 추가되었음을 알립니다. |
|
fun removeImageModel(imageModel: KakaoImageModel): KakaoImageModel?
이미지 모델을 제거하는 메소드입니다. |
|
fun runRetardedImageOperation(doStart: Boolean, prefImageOperation: PreDefinedValues? = null): Unit
와이파이 연결상태 예외처리 결과 후처리 메소드입니다. |
|
fun startDownload(): Unit
다운로드 절차를 시작합니다. |
|
fun startShare(): Unit
공유 절차를 시작합니다. |