Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. package com.dicoding.picodiploma.footballleagueaplication.features.nextMatch
  2.  
  3. import com.dicoding.picodiploma.footballleagueaplication.models.nextMatchModel.NextMatchItem
  4. import com.dicoding.picodiploma.footballleagueaplication.models.teamDetailModel.TeamDetailResponse
  5. import com.dicoding.picodiploma.footballleagueaplication.networks.RetrofitService.createService
  6. import rx.Observable
  7. import rx.android.schedulers.AndroidSchedulers
  8. import rx.schedulers.Schedulers
  9.  
  10. class NextMatchPresenter(
  11. private val view: NextMatchView
  12. ) {
  13.  
  14. fun getNextMatchData(idLeague: String?) {
  15. val listHome = mutableListOf<String>()
  16. val listAway = mutableListOf<String>()
  17. val listStadium = mutableListOf<String?>()
  18. val setDate = mutableSetOf<String>()
  19. val listNext = mutableListOf<NextMatchItem>()
  20. val apiService = createService()
  21.  
  22. view.showLoading()
  23.  
  24.  
  25. apiService.getNextMatch(idLeague)
  26. .subscribeOn(Schedulers.io())
  27. .observeOn(AndroidSchedulers.mainThread())
  28. .flatMap { Observable.from(it.events) }
  29. .flatMap {itNext ->
  30. Observable.zip(
  31. apiService.getTeamDetailFromServer(itNext.idHomeTeam),
  32. apiService.getTeamDetailFromServer(itNext.idAwayTeam)
  33. ) { homeTeam: TeamDetailResponse, awayTeam: TeamDetailResponse ->
  34. listHome.add(homeTeam.teams[0].strTeamBadge)
  35. listAway.add(awayTeam.teams[0].strTeamBadge)
  36. listNext.add(itNext)
  37. setDate.add(itNext.dateEvent)
  38. listStadium.add(homeTeam.teams[0].strStadium)
  39. }
  40. }.doOnCompleted {
  41. view.loadDataToView(listNext, listHome, listAway, listStadium, setDate )
  42. view.hideLoading()
  43. }
  44.  
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement