package Ġcom . blocks decoded . coin wave . presentation . coin info Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Handler Ċ import Ġandroidx . browser . custom tabs . Custom Tabs Intent Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġbutter knife . BindView Ċ import Ġbutter knife . OnClick Ċ import Ġcom . github . mike phil . chart ing . charts . Line Chart Ċ import Ġcom . github . mike phil . chart ing . data . Entry Ċ import Ġcom . github . mike phil . chart ing . highlight . Highlight Ċ import Ġcom . github . mike phil . chart ing . listener . Chart Touch Listener Ċ import Ġcom . blocks decoded . coin wave . R Ċ import Ġcom . blocks decoded . coin wave . data . model . chart . Chart Data Ċ import Ġcom . blocks decoded . coin wave . data . model . coin . Coin Entity Ċ import Ġcom . blocks decoded . coin wave . util .* Ċ import Ġcom . blocks decoded . coin wave . presentation . widgets . Lock able ScrollView Ċ import Ġcom . blocks decoded . coin wave . presentation . widgets . Option Selector View Ċ import Ġcom . blocks decoded . coin wave . presentation . widgets . chart . Chart Listener Ċ import Ġcom . blocks decoded . core . mvp . Base M vp Fragment Ċ import Ġcom . blocks decoded . utils .* Ċ import Ġcom . blocks decoded . utils . extensions .* Ċ import Ġorg . k oin . android . ext . android . inject Ċ import Ġorg . k oin . core . parameter . parameters Of Ċ import Ġjava . util .* Ċ Ċ open Ġclass ĠCoin Info Fragment Ġ: ĠBase M vp Fragment < IC oin Info Contract . Presenter >(), ĊĠĠĠ ĠI Coin Info Contract . View Ġ{ ĊĠĠĠ Ġoverride Ġval Ġpresenter : ĠI Coin Info Contract . Presenter Ġby Ġinject Ġ{ Ġparameters Of ( this @ Coin Info Fragment ) Ġ} ĊĠĠĠ Ġoverride Ġval Ġlayout Id : ĠInt Ġ= ĠR . layout . fragment _ coin _ info ĊĊĠĠĠ Ġ@ BindView ( R . id . fragment _ coin _ chart ) ĊĠĠĠ Ġlateinit Ġvar Ġm Chart : ĠLine Chart ĊĊĠĠĠ Ġ@ BindView ( R . id . coin _ scroll _ container ) ĊĠĠĠ Ġlateinit Ġvar Ġm Scroll Container : ĠLock able ScrollView ĊĠĠĠ Ġ@ BindView ( R . id . fragment _ coin _ add _ to _ watch list ) ĊĠĠĠ Ġlateinit Ġvar Ġm Watch list : ĠImageView ĊĠĠĠ Ġ@ BindView ( R . id . fragment _ coin _ info _ icon ) ĊĠĠĠ Ġlateinit Ġvar Ġm Icon : ĠImageView ĊĠĠĠ Ġ@ BindView ( R . id . fragment _ coin _ info _ name ) ĊĠĠĠ Ġlateinit Ġvar Ġm Name : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . fragment _ coin _ info _ symbol ) ĊĠĠĠ Ġlateinit Ġvar Ġm Symbol : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . coin _ price ) ĊĠĠĠ Ġlateinit Ġvar Ġm Price : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . coin _ market _ cap ) ĊĠĠĠ Ġlateinit Ġvar Ġm Market Cap : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . coin _ volume _ 2 4 h ) ĊĠĠĠ Ġlateinit Ġvar Ġm Volume 2 4 h : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . coin _ available _ supply ) ĊĠĠĠ Ġlateinit Ġvar Ġm Available Supply : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . coin _ total _ supply ) ĊĠĠĠ Ġlateinit Ġvar Ġm Total Supply : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . coin _ change _ 1 h ) ĊĠĠĠ Ġlateinit Ġvar Ġm Change 1 h : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . coin _ change _ 1 d ) ĊĠĠĠ Ġlateinit Ġvar Ġm Change 1 d : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . coin _ change _ 1 w ) ĊĠĠĠ Ġlateinit Ġvar Ġm Change 1 w : ĠTextView ĊĊĠĠĠ Ġ@ BindView ( R . id . fragment _ coin _ chart _ error ) ĊĠĠĠ Ġlateinit Ġvar Ġm Chart Error Image : ĠView ĊĠĠĠ Ġ@ BindView ( R . id . coin _ chart _ pick ed _ container ) ĊĠĠĠ Ġlateinit Ġvar Ġm Pick ed Container : ĠView ĊĠĠĠ Ġ@ BindView ( R . id . coin _ chart _ pick ed ) ĊĠĠĠ Ġlateinit Ġvar Ġm Pick ed Price : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . fragment _ coin _ progress ) ĊĠĠĠ Ġlateinit Ġvar Ġm Progress : ĠView ĊĠĠĠ Ġ@ BindView ( R . id . coin _ chart _ period ) ĊĠĠĠ Ġlateinit Ġvar Ġm Chart Periods : ĠOption Selector View ĊĊĠĠĠ Ġprivate Ġval Ġm Chart Listener Ġ= Ġobject Ġ: ĠChart Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Value Selected ( e : ĠEntry ?, Ġh : ĠHighlight ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Pick ed Container . visibility Ġ!= ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Pick ed Container . alpha Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Pick ed Container . animate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . set Duration ( 3 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . alpha ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . with Start Action Ġ{ Ġm Pick ed Container . visible () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠDate ( e ?. x ?. to Long () Ġ?: Ġ 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Pick ed Price . text Ġ= Ġ"${ date . to Medium Format ()} Ġ${ date . to Hour Format () }\ n \$ ${ ( e ?. y Ġ?: Ġ 0 f ). format () }" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Chart Gesture End ( me : ĠMotion Event ?, Ġlast Performed Gesture : ĠChart Touch Listener . Chart Gesture ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Pick ed Container . animate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . set Duration ( 3 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . alpha ( 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . with End Action Ġ{ Ġm Pick ed Container . invisible () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Scroll Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Chart Gesture Start ( me : ĠMotion Event ?, Ġlast Performed Gesture : ĠChart Touch Listener . Chart Gesture ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Scroll Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ OnClick ( R . id . coin _ graph _ icon , ĠR . id . back , ĠR . id . fragment _ coin _ add _ to _ watch list ) ĊĠĠĠ Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( view . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . coin _ graph _ icon Ġ-> Ġpresenter . on Go To Website Click () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . back Ġ-> Ġfinish View () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . fragment _ coin _ add _ to _ watch list Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Watch ing Click () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Watch list . play Animation ( R . anim . press _ scale _ anim ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġm Scroll Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Scroll Container . scroll able Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View ( root View : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Chart Periods . add ClickListener Ġ{ Ġpresenter . on Period Changed ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Chart . init ( m Chart Listener ) ĊĊĠĠĠĠĠĠĠ Ġactivity ?. intent ?. also Ġ{ Ġpresenter . fetch Currency Data ( Coin Info Activity . getId From Intent ( it )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Data ( data : ĠChart Data ) Ġ= Ġm Chart . load Chart Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . black , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . bg _ dark _ chart ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġshow Currency Info ( coin Entity : ĠCoin Entity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Icon . load Coin Icon ( coin Entity ) ĊĠĠĠĠĠĠĠ Ġm Name . text Ġ= Ġcoin Entity . name ĊĠĠĠĠĠĠĠ Ġm Symbol . text Ġ= Ġcoin Entity . symbol ĊĠĠĠĠĠĠĠ Ġm Price . text Ġ= Ġ"$ ${ coin Entity . get Price ()?. format () }" ĊĠĠĠĠĠĠĠ Ġm Market Cap . text Ġ= Ġ"$ ${ coin Entity . get Market Cap ()?. format () }" ĊĠĠĠĠĠĠĠ Ġm Volume 2 4 h . text Ġ= Ġ"$ ${ coin Entity . get Daily Volume ()?. format () }" ĊĠĠĠĠĠĠĠ Ġm Available Supply . text Ġ= Ġcoin Entity . cir cul ating Supply . format () ĊĠĠĠĠĠĠĠ Ġm Total Supply . text Ġ= Ġcoin Entity . total Supply . format () ĊĊĠĠĠĠĠĠĠ Ġm Change 1 d . hide () ĊĠĠĠĠĠĠĠ Ġm Change 1 w . hide () ĊĠĠĠĠĠĠĠ Ġm Change 1 h . set Changed Percent ( coin Entity . price Change ) ĊĊĠĠĠĠĠĠĠ Ġset W atched Icon ( coin Entity . is Saved ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset W atched Icon ( w atched : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( w atched ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Watch list . setImage Resource ( R . drawable . ic _ star _ filled ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Watch list . setImage Resource ( R . drawable . ic _ star _ border ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// region ĠContract ĊĊĠĠĠ Ġoverride Ġfun Ġopen Site ( url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Tabs Intent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Toolbar Color ( Color . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Start Animations ( it , ĠR . anim . slide _ in _ right , ĠR . anim . slide _ out _ left ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Exit Animations ( it , ĠR . anim . slide _ in _ left , ĠR . anim . slide _ out _ right ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch Url ( it , ĠUri . parse ( url )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset W atched ( w atched : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset W atched Icon ( w atched ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Chart Data ( chart Data : ĠChart Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Progress . hide () ĊĠĠĠĠĠĠĠ Ġm Chart . visible () ĊĠĠĠĠĠĠĠ Ġshow Data ( chart Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Currency Data ( coin Entity : ĠCoin Entity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Currency Info ( coin Entity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Loading () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Progress . visible () ĊĠĠĠĠĠĠĠ Ġm Chart . invisible () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Loading () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Progress . hide () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Chart Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Chart Error Image . visible () ĊĠĠĠĠĠĠĠ Ġm Chart . hide () ĊĠĠĠĠĠĠĠ Ġshow Short Toast ( context , ĠgetString ( R . string . message _ connection _ error )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Chart Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Chart Error Image . hide () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// endregion ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠCoin Info Fragment Ġ= ĠCoin Info Fragment () ĊĠĠĠ Ġ} Ċ }