package Ġuk . co . sentinel web . bit watcher . activity . main . pages . home Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . support . design . widget . Snackbar Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Frame Layout Ċ import Ġkotlinx . android . synt hetic . main . main _ home _ accounts _ include . view .* Ċ import Ġkotlinx . android . synt hetic . main . main _ home _ page . view .* Ċ import Ġkotlinx . android . synt hetic . main . main _ home _ ticker _ grid _ include . view .* Ċ import Ġuk . co . sentinel web . bit watcher . R Ċ import Ġuk . co . sentinel web . bit watcher . activity . edit _ account . Edit Account Activity Ċ import Ġuk . co . sentinel web . bit watcher . activity . main . pages . home . account _ row . Account Row Contract Ċ import Ġuk . co . sentinel web . bit watcher . activity . main . pages . home . account _ row . Account Row Presenter Ċ import Ġuk . co . sentinel web . bit watcher . activity . main . pages . home . account _ row . Account Row View Ċ import Ġuk . co . sentinel web . bit watcher . common . ui . Currency Selector ĊĊ Ċ class ĠHome View ( context : ĠContext ?) Ġ: ĠFrame Layout ( context ), ĠHome Contract . View Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġfab Hide Listener : ĠF ab Hide Listener ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpresenter : ĠHome Contract . Presenter ĊĠĠĠ Ġprivate Ġvar Ġsn ackBar : ĠSn ackbar ? Ġ= Ġnull ĊĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( R . layout . main _ home _ page , Ġthis , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġfab Hide Listener Ġ= ĠF ab Hide Listener ( home _ accounts _ scroll , Ġhome _ accounts _ add _ fab ) ĊĠĠĠĠĠĠĠ Ġview Tree Observer . add On Global Layout Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġhome _ accounts _ scroll . layout Params . height Ġ= Ġheight Ġ- Ġhome _ ticker _ include . height Ġ- Ġhome _ accounts _ include . top Ġ}) ĊĠĠĠĠĠĠĠ Ġhome _ accounts _ scroll . getView Tree Observer (). add On Scroll Changed Listener ( fab Hide Listener ) ĊĠĠĠĠĠĠĠ Ġhome _ accounts _ ghost _ container . setOnClickListener ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfab Hide Listener . toggle Fab () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġhome _ accounts _ add _ fab . setOnClickListener ({ Ġ_ Ġ-> Ġpresenter . on Add Account Click () Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Ticker Display ( tick ers : ĠHome State . Ticker Display ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbtc _ usd _ ticker _ text . text Ġ= Ġtick ers . btc Us d Price Text ĊĠĠĠĠĠĠĠ Ġeth _ usd _ ticker _ text . text Ġ= Ġtick ers . eth Us d Price Text ĊĠĠĠĠĠĠĠ Ġb ch _ usd _ ticker _ text . text Ġ= Ġtick ers . b ch Us d Price Text ĊĠĠĠĠĠĠĠ Ġbtc _ gb p _ ticker _ text . text Ġ= Ġtick ers . btc G bp Price Text ĊĠĠĠĠĠĠĠ Ġeth _ gb p _ ticker _ text . text Ġ= Ġtick ers . eth G bp Price Text ĊĠĠĠĠĠĠĠ Ġb ch _ gb p _ ticker _ text . text Ġ= Ġtick ers . b ch G bp Price Text ĊĠĠĠĠĠĠĠ Ġbtc _ eur _ ticker _ text . text Ġ= Ġtick ers . btc E ur Price Text ĊĠĠĠĠĠĠĠ Ġeth _ eur _ ticker _ text . text Ġ= Ġtick ers . eth E ur Price Text ĊĠĠĠĠĠĠĠ Ġb ch _ eur _ ticker _ text . text Ġ= Ġtick ers . b ch E ur Price Text ĊĠĠĠĠĠĠĠ Ġx rp _ usd _ ticker _ text . text Ġ= Ġtick ers . x rp Us d Price Text ĊĠĠĠĠĠĠĠ Ġx rp _ gb p _ ticker _ text . text Ġ= Ġtick ers . x rp G bp Price Text ĊĠĠĠĠĠĠĠ Ġx rp _ eur _ ticker _ text . text Ġ= Ġtick ers . x rp E ur Price Text ĊĠĠĠĠĠĠĠ Ġiota _ usd _ ticker _ text . text Ġ= Ġtick ers . i ota Us d Price Text ĊĠĠĠĠĠĠĠ Ġiota _ gb p _ ticker _ text . text Ġ= Ġtick ers . i ota G bp Price Text ĊĠĠĠĠĠĠĠ Ġiota _ eur _ ticker _ text . text Ġ= Ġtick ers . i ota E ur Price Text ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Presenter ( p : ĠHome Contract . Presenter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter Ġ= Ġp ĊĠĠĠĠĠĠĠ Ġhome _ accounts _ currency _ button . setOnClickListener ({ Ġ_ Ġ-> Ġpresenter . on Currency Button Click () Ġ}) ĊĠĠĠĠĠĠĠ Ġhome _ accounts _ real _ visible _ button . setOnClickListener ({ Ġ_ Ġ-> Ġpresenter . on Display Real Account Toggle () Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Totals Display ( totals : ĠHome State . Totals Display ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhome _ accounts _ ghost _ total . text Ġ= Ġtotals . ghost Total Display ĊĠĠĠĠĠĠĠ Ġhome _ accounts _ real _ total . text Ġ= Ġtotals . real Total Display ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Account ( inter actions : ĠAccount Row Contract . Interactions ): ĠAccount Row Contract . Presenter Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠAccount Row View ( context ) ĊĠĠĠĠĠĠĠ Ġhome _ accounts _ container . addView ( view ) ĊĠĠĠĠĠĠĠ Ġview . setOnClickListener ( null ) Ġ// ĠTODO Ġlink Ġto Ġac ct Ġoverview Ġpage ĊĠĠĠĠĠĠĠ Ġreturn ĠAccount Row Presenter ( view , Ġinteractions ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear Account List () Ġ{ ĊĠĠĠĠĠĠĠ Ġhome _ accounts _ container . removeAll Views () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Display Currency ( currency Code : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhome _ accounts _ currency _ button . text Ġ= Ġcurrency Code ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Currency Dialog ( currencies : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ ĠCurrency Selector . show Currency Selector ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc urrencies , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġ_: ĠDialog Interface , Ġidx : ĠInt Ġ-> Ġpresenter . on Currency Selected ( currencies . get ( idx )) Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlaunch Edit Account Activity ( id : ĠLong ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . startActivity ( Edit Account Activity . get Launch Intent ( context , Ġid )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlaunch Account Overview Activity ( id : ĠLong ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Display Real Accounts ( display : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhome _ accounts _ real _ visible _ button . setImage Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( display ) ĠR . drawable . ic _ visibility _ black _ 2 4 dp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠR . drawable . ic _ visibility _ off _ black _ 2 4 dp ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġhome _ accounts _ real _ container . visibility Ġ= Ġif Ġ( display ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ Ġrequest Layout () Ġ// fab Ġbutton Ġjumps Ġup ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Deleted Sn ackBar () Ġ{ ĊĠĠĠĠĠĠĠ Ġsn ackBar ?. dismiss () ĊĠĠĠĠĠĠĠ Ġsn ackBar Ġ= ĠSn ackbar . make ( this , Ġ" Account Ġdeleted ", ĠSn ackbar . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction (" Undo ", Ġ{ Ġpresenter . restore Deleted Account () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction TextColor ( Context Compat . getColor ( context , ĠR . color . color Accent )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Callback ( object Ġ: ĠSn ackbar . Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Dis missed ( transient Bottom Bar : ĠSn ackbar ?, Ġevent : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . clear Deleted Account () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsn ackBar ?. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Sn ackBar Message ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsn ackBar ?. dismiss () ĊĠĠĠĠĠĠĠ Ġsn ackBar Ġ= ĠSn ackbar . make ( this , Ġmessage , ĠSn ackbar . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠ Ġsn ackBar ?. show () ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ