Guest User

Untitled

a guest
Jan 24th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. data class LoadImageUseCaseRequest (
  2. val key: String,
  3. val storage: Storage,
  4. val imageFetcher: ImageFetcher
  5. )
  6.  
  7. data class LoadImageUseCaseResponse (val bitmap: Bitmap)
  8.  
  9. class LoadImageUseCase : UseCase<LoadImageUseCaseRequest, LoadImageUseCaseResponse> {
  10. override fun handleRequest(request: LoadImageUseCaseRequest) : LoadImageUseCaseResponse {
  11. val url = request.storage.getUrlForKey(request.key)
  12. val image = request.imageFetcher.getImageFromUrl(url)
  13. return LoadImageUseCaseResponse(image)
  14. }
  15. }
  16.  
  17. class Model {
  18.  
  19. @Inject lateinit var useCaseRunner: UseCaseRunner<LoadImageUseCaseRequest, LoadImageUseCaseResponse>
  20. @Inject lateinit var imageFetcher : ImageFetcher
  21. @Inject lateinit var storage: Storage
  22.  
  23. fun fetchUseCase(storageKey: String) {
  24. val request = LoadImageUseCaseRequest(storageKey, storage, imageFetcher)
  25. val useCase = LoadImageUseCase()
  26. useCaseRunner.runUseCase(useCase, request, object : UseCaseResponseHandler<LoadImageUseCaseResponse> {
  27. override fun handleResponse(response: LoadImageUseCaseResponse) {
  28. doSomthingWithResponse(response)
  29. }
  30.  
  31. })
  32. }
  33.  
  34. private fun doSomthingWithResponse(response: LoadImageUseCaseResponse) {
  35. ....
  36. }
  37. }
Add Comment
Please, Sign In to add comment