package Ġcom . rm n iv nv . crypt omo on . ui . coins Ċ Ċ import Ġcom . rm n iv nv . crypt omo on . R Ċ import Ġcom . rm n iv nv . crypt omo on . model .* Ċ import Ġcom . rm n iv nv . crypt omo on . model . db . CM Database Ċ import Ġcom . rm n iv nv . crypt omo on . model . network . Network Requests Ċ import Ġcom . rm n iv nv . crypt omo on . model . r xb us .* Ċ import Ġcom . rm n iv nv . crypt omo on . ui . main . Sort Dialog Ċ import Ġcom . rm n iv nv . crypt omo on . utils .* Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġr mn iv nv Ġon Ġ 1 1 / 0 7 / 2 0 1 7 . Ċ Ġ*/ Ċ class ĠCoin s Presenter Ġ@ Inject Ġconstructor ( private Ġval Ġview : ĠI Coins . View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġnetwork Requests : ĠNetwork Requests , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġcoins Controller : ĠCoin s Controller , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġdb : ĠCM Database , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġres Provider : ĠResource Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġpage Controller : ĠPage Controller , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġmulti Selector : ĠMulti Selector , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġhold ings Handler : ĠHold ings Handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger : ĠLogger , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġto aster : ĠTo aster , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġpreferences : ĠPreferences ) Ġ: ĠI Coins . Presenter Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdis posable Ġ= ĠComposite Disposable () ĊĠĠĠ Ġprivate Ġvar Ġcoins : ĠArrayList < Coin > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġhold ings : ĠArrayList < Hold ing Data > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġis Refresh ing Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġis First Start Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( coins : ĠArrayList < Coin >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . coins Ġ= Ġcoins ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsubscribe To Observable s () ĊĠĠĠĠĠĠĠ ĠgetAll Coins Info () ĊĠĠĠĠĠĠĠ Ġif Ġ( coins . isNotEmpty ()) Ġupdate Prices () ĊĠĠĠĠĠĠĠ Ġupdate Hold ings () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsubscribe To Observable s () Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Coins Changes Observable () ĊĠĠĠĠĠĠĠ Ġadd Hold ings Changes Observable () ĊĠĠĠĠĠĠĠ Ġsetup Rx Bus Events Listeners () ĊĠĠĠĠĠĠĠ Ġadd On Page Changed Observable () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Coins Changes Observable () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis posable . add ( db . coins Dao (). getAll Coins () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġon Coins From Db Updates ( it ) Ġ})) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Coins From Db Updates ( list : ĠList < Coin >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( list . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Coins Ġ= Ġalready Selected Coins () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoins . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoins . addAll ( list ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( selected Coins . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetSelected Coins ( selected Coins ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort Coin sBy Selected Sort Method () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . disable Empty Text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . update RecyclerView () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is First Start ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis First Start Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Prices () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Hold ings () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoins . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . enable Empty Text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . update RecyclerView () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġalready Selected Coins (): ĠArrayList < Coin > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselected Coins : ĠArrayList < Coin > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġif Ġ( coins . isNotEmpty () Ġ&& Ġmulti Selector . at Least One Is Selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoins . filter Ġ{ Ġit . selected Ġ}. forEach Ġ{ Ġselected Coins . add ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġselected Coins ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetSelected Coins ( selected Coins : ĠArrayList < Coin >) Ġ{ ĊĠĠĠĠĠĠĠ Ġselected Coins . forEach Ġ{ Ġselected Coin Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoins . find Ġ{ Ġit . from Ġ== Ġselected Coin . from Ġ} ?. selected Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Hold ings Changes Observable () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis posable . add ( db . hold ings Dao (). getAll Hold ings () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġon Hold ings Update ( it ) Ġ})) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Hold ings Update ( updated Hold ings : ĠList < Hold ing Data >) Ġ{ ĊĠĠĠĠĠĠĠ Ġhold ings . clear () ĊĠĠĠĠĠĠĠ Ġif Ġ( updated Hold ings . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhold ings . addAll ( updated Hold ings ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Hold ings () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . disable Total Hold ings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Hold ings () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( hold ings . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Total Hold ing Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Total Hold ings Change Percent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Total Hold ings Change Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . enable Total Hold ings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Total Hold ing Value () Ġ{ ĊĠĠĠĠĠĠĠ Ġview . set Total Hold ings Value ("$ Ġ${ getString With Two Decimal s From Double ( hold ings Handler . getTotal Value With Current Price ()) }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Total Hold ings Change Percent () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtotal Change Percent Ġ= Ġhold ings Handler . getTotal Change Percent () ĊĠĠĠĠĠĠĠ Ġview . set Total Hold ings Change Percent ("${ getString With Two Decimal s From Double ( total Change Percent )} % ") ĊĠĠĠĠĠĠĠ Ġview . set Total Hold ings Change Percent Color ( get Change Color ( total Change Percent )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Total Hold ings Change Value () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtotal Change Value Ġ= Ġhold ings Handler . getTotal Change Value () ĊĠĠĠĠĠĠĠ Ġview . set Total Hold ings Change Value ("$ ${ getString With Two Decimal s From Double ( total Change Value )} ") ĊĠĠĠĠĠĠĠ Ġview . set Total Hold ings Change Value Color ( get Change Color ( total Change Value )) ĊĠĠĠĠĠĠĠ Ġset All Time Profit Loss String ( total Change Value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset All Time Profit Loss String ( change : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . set All Time Profit Loss String ( get Profit Loss Text ( change )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Profit Loss Text ( change : ĠFloat ) Ġ= Ġif Ġ( change Ġ>= Ġ 0 ) Ġres Provider . getString ( R . string . profit ) Ġelse Ġ Ġres Provider . getString ( R . string . loss ) ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Rx Bus Events Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis posable . add ( Rx Bus . listen ( On Delete Coins MenuItem Clicked Event :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĠonDelete Clicked () Ġ}) ĊĠĠĠĠĠĠĠ Ġdis posable . add ( Rx Bus . listen ( Coins Sort Method Updated :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġon Sort Method Updated ( it . sort ) Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonDelete Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoin sTo Delete Ġ= Ġcoins . filter Ġ{ Ġit . selected Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( coins ToDelete . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisable Selected () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhold ings Handler . remove Hold ings ( coins ToDelete ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoins Controller . delete Coins ( coins ToDelete ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRx Bus . publish ( Main Coins List Updated Event ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto aster . toast Short ( if Ġ( coins ToDelete . size Ġ> Ġ 1 ) Ġres Provider . getString ( R . string . coins _ deleted ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġres Provider . getString ( R . string . coin _ deleted )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Sort Method Updated ( sort : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sort Ġ!= Ġnull ) Ġpreferences . sortBy Ġ= Ġsort ĊĠĠĠĠĠĠĠ Ġif Ġ( coins . isNotEmpty () Ġ&& Ġcoins . size Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort Coin sBy Selected Sort Method () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsort Coin sBy Selected Sort Method () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( preferences . sortBy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSort Dialog . SORT _ BY _ NAME Ġ-> Ġcoins . sortBy Ġ{ Ġit . from Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSort Dialog . SORT _ BY _ PRICE _ INCRE ASE Ġ-> Ġcoins . sortBy Ġ{ Ġit . price Raw Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSort Dialog . SORT _ BY _ PRICE _ DECRE ASE Ġ-> Ġcoins . sortBy Descending Ġ{ Ġit . price Raw Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSort Dialog . SORT _ BY _ 2 4 H _ PRICE _ INCRE ASE Ġ-> Ġcoins . sortBy Ġ{ Ġit . change Pct 2 4 h Raw Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSort Dialog . SORT _ BY _ 2 4 H _ PRICE _ DECRE ASE Ġ-> Ġcoins . sortBy Descending Ġ{ Ġit . change Pct 2 4 h Raw Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview . update RecyclerView () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd On Page Changed Observable () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis posable . add ( page Controller . getPage Observable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġon Page Changed ( it ) Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Page Changed ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ!= ĠCO INS _ FRAGMENT _ PAGE _ POSITION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisable Selected () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisable Selected () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( multi Selector . at Least One Is Selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoins . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . selected Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . update RecyclerView () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Selector . at Least One Is Selected Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetAll Coins Info () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis posable . add ( network Requests . getAll Coins () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġon All Coins Received ( it ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġlogger . log Error (" getAll Coins Info Ġ$ it ") Ġ})) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon All Coins Received ( list : ĠArrayList < Info Coin >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( list . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoins Controller . save All Coins Info ( list ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Prices () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Prices () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġquery Map Ġ= Ġcreate Coins Map With C urrencies ( coins ) ĊĠĠĠĠĠĠĠ Ġif Ġ( query Map . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRx Bus . publish ( Coins Loading Event ( true )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdis posable . add ( network Requests . get Price ( query Map ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġon Price Updated ( it ) Ġ}, Ġ{ Ġafter Refresh ing () Ġ})) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Price Updated ( list : ĠArrayList < Coin >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( list . isNotEmpty ()) Ġcoins Controller . save Coins List ( filter List ( list )) ĊĠĠĠĠĠĠĠ Ġafter Refresh ing () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfilter List ( coins InfoList : ĠArrayList < Coin >): ĠArrayList < Coin > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠArrayList < Coin > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġcoins . forEach Ġ{ Ġ( from , Ġto ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfind Ġ= Ġcoins InfoList . find Ġ{ Ġit . from Ġ== Ġfrom Ġ&& Ġit . to Ġ== Ġto Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( find Ġ!= Ġnull ) Ġresult . add ( find ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġafter Refresh ing () Ġ{ ĊĠĠĠĠĠĠĠ ĠRx Bus . publish ( Coins Loading Event ( false )) ĊĠĠĠĠĠĠĠ Ġif Ġ( is Refresh ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide Refresh ing () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . enable Swipe To Refresh () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis posable . clear () ĊĠĠĠĠĠĠĠ Ġdisable Selected () ĊĠĠĠĠĠĠĠ ĠRx Bus . publish ( Coins Loading Event ( false )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Swipe Update () Ġ{ ĊĠĠĠĠĠĠĠ Ġdisable Selected () ĊĠĠĠĠĠĠĠ Ġis Refresh ing Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġupdate Prices () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Coin Clicked ( coin : ĠCoin ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . start Coin Info Activity ( coin . from , Ġcoin . to ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Hold ings Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġview . start Hold ings Activity () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Alloc ations Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġview . start Alloc ations Activity () ĊĠĠĠ Ġ} Ċ }