package Ġapp . od applications . bit stash wallet . modules . send . sub modules . amount Ċ Ċ import Ġapp . od applications . bit stash wallet . core . IL ocal Storage Ċ import Ġapp . od applications . bit stash wallet . core . IR ate Storage Ċ import Ġapp . od applications . bit stash wallet . entities . Coin Ċ import Ġapp . od applications . bit stash wallet . entities . Currency Ċ import Ġapp . od applications . bit stash wallet . entities . Rate Ċ import Ġapp . od applications . bit stash wallet . modules . send . Send Module Ċ import Ġio . reactivex . Flow able Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjava . util . concurrent . TimeUnit ĊĊ Ċ class ĠSend Amount Interactor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbase Currency : ĠCurrency , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrate Storage : ĠI Rate Storage , ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠlocalStorage : ĠI LocalStorage , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcoin : ĠCoin Ċ ): ĠSend Amount Module . I Interactor Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġexchange Rate : ĠRate ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġdis pos ables Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġvar Ġdelegate : ĠSend Amount Module . I Interactor Delegate ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġvar Ġdefault InputType : ĠSend Module . InputType ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠlocalStorage . send InputType Ġ?: ĠSend Module . InputType . CO IN ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĠlocalStorage . send InputType Ġ= Ġvalue Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġretrieve Rate () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables . clear () ĊĊĠĠĠĠĠĠĠ Ġdis pos ables . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrate Storage . latest Rate Observable ( coin . code , Ġbase Currency . code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexchange Rate Ġ= Ġif Ġ( it . expired ) Ġnull Ġelse Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate ?. did Rate Retrieve ( exchange Rate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġdis pos ables . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFlow able . interval ( 1 , ĠTimeUnit . MIN UTES ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( exchange Rate ?. expired Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexchange Rate Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate ?. did Rate Retrieve ( exchange Rate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ