package Ġcom . shiv am dev . sp end it . features . exp enses Ċ Ċ import Ġcom . shiv am dev . sp end it . common . mvp . Base Presenter Ċ import Ġcom . shiv am dev . sp end it . data . firebase . Firebase Helper Ċ import Ġcom . shiv am dev . sp end it . data . local . User Helper Ċ import Ġcom . shiv am dev . sp end it . ext s . NoSuch Document Exception Ċ import Ġcom . shiv am dev . sp end it . ext s . transform Comp letable Ċ import Ġcom . shiv am dev . sp end it . ext s . transform Observable Ċ import Ġio . reactivex . rx kotlin . plus Assign Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġsh iv am Ġon Ġ 0 2 / 0 2 / 1 8 . Ċ Ġ*/ Ċ class ĠExp enses Presenter Ġ@ Inject Ġconstructor ( private Ġval Ġfirebase Helper : ĠFirebase Helper , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġuser Helper : ĠUser Helper ) ĊĠĠĠ Ġ: ĠBase Presenter < Exp enses View >() Ġ{ ĊĊĠĠĠ Ġfun ĠgetUser L ent Balance () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable Ġ+= Ġfirebase Helper . getUser Details ( user Helper . getUser (). userId !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do OnError ({ Ġt : ĠThrowable ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( t Ġis ĠNoSuch Document Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġuser Helper . getUser () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Helper . update User ( user ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( transform Comp letable ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĠgetUser L ent Balance () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( transform Observable ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġuser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnet Balance Ġ= Ġuser . user L ent Ġ- Ġuser . user Borrow ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. update User Balance ( user . user L ent , Ġnet Balance ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĠTim ber :: e ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetUser Borrow Balance () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable Ġ+= Ġfirebase Helper . getUser Details ( user Helper . getUser (). userId !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do OnError ({ Ġt : ĠThrowable ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( t Ġis ĠNoSuch Document Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġuser Helper . getUser () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Helper . update User ( user ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( transform Comp letable ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĠgetUser Borrow Balance () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( transform Observable ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġuser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnet Balance Ġ= Ġuser . user L ent Ġ- Ġuser . user Borrow ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. update User Balance ( user . user Borrow , Ġnet Balance ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĠTim ber :: e ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Exp enses Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġview ?. show Loader () ĊĠĠĠĠĠĠĠ Ġcomposite Disposable Ġ+= Ġfirebase Helper . getUser Exp enses ( user Helper . getUser (). userId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( transform Observable ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. update User Exp enses ( it . to Mutable List ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. show No Exp enses Message () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. hide Loader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĠTim ber :: e ) ĊĠĠĠ Ġ} Ċ Ċ }