Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- data class LoadImageUseCaseRequest (
- val key: String,
- val storage: Storage,
- val imageFetcher: ImageFetcher
- )
- data class LoadImageUseCaseResponse (val bitmap: Bitmap)
- class LoadImageUseCase : UseCase<LoadImageUseCaseRequest, LoadImageUseCaseResponse> {
- override fun handleRequest(request: LoadImageUseCaseRequest) : LoadImageUseCaseResponse {
- val url = request.storage.getUrlForKey(request.key)
- val image = request.imageFetcher.getImageFromUrl(url)
- return LoadImageUseCaseResponse(image)
- }
- }
- class Model {
- @Inject lateinit var useCaseRunner: UseCaseRunner<LoadImageUseCaseRequest, LoadImageUseCaseResponse>
- @Inject lateinit var imageFetcher : ImageFetcher
- @Inject lateinit var storage: Storage
- fun fetchUseCase(storageKey: String) {
- val request = LoadImageUseCaseRequest(storageKey, storage, imageFetcher)
- val useCase = LoadImageUseCase()
- useCaseRunner.runUseCase(useCase, request, object : UseCaseResponseHandler<LoadImageUseCaseResponse> {
- override fun handleResponse(response: LoadImageUseCaseResponse) {
- doSomthingWithResponse(response)
- }
- })
- }
- private fun doSomthingWithResponse(response: LoadImageUseCaseResponse) {
- ....
- }
- }
Add Comment
Please, Sign In to add comment