package Ġdur d inst ud ios . wow arena . domain . arena Ċ Ċ import Ġcom . bq . mas mov . ref lux . d agger . App Scope Ċ import Ġdur d inst ud ios . wow arena . data . War craft API Instances Ċ import Ġdur d inst ud ios . wow arena . domain . arena . model . Arena Stats Ċ import Ġdur d inst ud ios . wow arena . domain . arena . model . to Arena Info Ċ import Ġdur d inst ud ios . wow arena . misc . task Failure Ċ import Ġdur d inst ud ios . wow arena . misc . task Success Ċ import Ġdur d inst ud ios . wow arena . profile . Character Ċ import Ġdur d inst ud ios . wow arena . profile . Character Info Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġmini . Dispatcher Ċ import Ġjavax . inject . Inject ĊĊ Ċ interface ĠA rena Controller Ġ{ ĊĊĠĠĠ Ġfun Ġget Arena Stats ( character Info : ĠCharacter Info ) ĊĠĠĠ Ġfun Ġsave Arena Stats ( stats : ĠA rena Stats ) ĊĠĠĠ Ġfun Ġdownload Arena Stats ( current Characters : ĠList < Character >) Ċ } Ċ Ċ @ App Scope Ċ class ĠA rena Controller Impl Ġ@ Inject Ġconstructor ( private Ġval Ġdispatcher : ĠDispatcher , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġarena Repository : ĠA rena Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġwar craft Api : ĠWar craft API Instances ) Ġ: ĠA rena Controller Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġdownload Arena Stats ( current Characters : ĠList < Character >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Calls Ġ= Ġcurrent Characters . map Ġ{ Ġwar craft Api . apis [ it . region ]?. getPlayer P vp Info ( it . username , Ġit . realm ) Ġ} ĊĠĠĠĠĠĠĠ ĠSingle . merge ( database Calls ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . forEach Ġ{ Ġplayer Info Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcharacter Ġ= Ġcurrent Characters ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first Ġ{ Ġit . character Equals To ( player Info . name , Ġplayer Info . realm ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstats Ġ= ĠA rena Stats ( character , Ġplayer Info . p vp . br ackets . arena 2 v 2 ?. to Arena Info (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Info . p vp . br ackets . arena 3 v 3 ?. to Arena Info (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Info . p vp . br ackets . arena R bg ?. to Arena Info (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Info . lastModified ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Arena Stats ( stats ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatcher . dispatch On Ui ( Download Arena Stats Complete ( task Success ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatcher . dispatch On Ui ( Download Arena Stats Complete ( task Failure ( error ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Arena Stats ( character Info : ĠCharacter Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġarena Repository . get Arena Stats ( character Info ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave Arena Stats ( stats : ĠA rena Stats ) Ġ{ ĊĠĠĠĠĠĠĠ Ġarena Repository . save Arena Stats ( stats ) ĊĠĠĠ Ġ} Ċ }