package Ġcom . example . ale j andro . bit co ing raph er . presentation . ui . activities Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġcom . example . ale j andro . bit co ing raph er . R Ċ import Ġcom . example . ale j andro . bit co ing raph er . domain . inter actor . impl . Get Bitcoin Market Price Data Interactor Impl Ċ import Ġcom . example . ale j andro . bit co ing raph er . domain . model . Bitcoin Data Ċ import Ġcom . example . ale j andro . bit co ing raph er . presentation . presenter . Get Bitcoin Market Price Data Presenter Ċ import Ġcom . example . ale j andro . bit co ing raph er . presentation . presenter . impl . Get Bitcoin Market Price Data Presenter Impl Ċ import Ġcom . example . ale j andro . bit co ing raph er . utils . Logger Utils Ċ import Ġcom . github . mike phil . chart ing . components . X Axis Ċ import Ġcom . github . mike phil . chart ing . data . DataSet Ċ import Ġcom . github . mike phil . chart ing . data . Entry Ċ import Ġcom . github . mike phil . chart ing . data . Line Data Ċ import Ġcom . github . mike phil . chart ing . data . Line DataSet Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġorg . jetbrains . ank o . sdk 2 7 . coroutines . onClick Ċ Ċ class ĠMainActivity Ġ: ĠBase Activity (), Ċ Get Bitcoin Market Price Data Presenter . View Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġget Bitcoin Market Price Data Presenter : ĠGet Bitcoin Market Price Data Presenter ĊĊĠĠĠ Ġprivate Ġvar Ġbitcoin Price List Entries : ĠMutable List < Entry > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbitcoin DataSet : ĠDataSet < Entry > ĊĊĠĠĠ Ġprivate Ġvar Ġbitcoin Price Dates : ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . layout Ġ= ĠR . layout . activity _ main ĊĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinitialize Present ers () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . initialize Present ers () ĊĊĠĠĠĠĠĠĠ Ġthis . get Bitcoin Market Price Data Presenter Ġ= ĠGet Bitcoin Market Price Data Presenter Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGet Bitcoin Market Price Data Interactor Impl ( Android Schedulers . main Thread (), ĠS chedulers . new Thread ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconfig Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . config Views () ĊĊĠĠĠĠĠĠĠ Ġerror _ message . onClick Ġ{ Ġget Bitcoin Market Price Data Presenter . get Bitcoin Market Price () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . load Data () ĊĊĠĠĠĠĠĠĠ Ġthis . get Bitcoin Market Price Data Presenter . get Bitcoin Market Price () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisplay Content ( success : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . display Content ( success ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( success ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata _ graph . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror _ message . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata _ graph . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror _ message . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Graph Data ( bitcoin Market Price List : ĠList < Bitcoin Data > ){ ĊĠĠĠĠĠĠĠ Ġif Ġ(! bitcoin Market Price List . isNull OrEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( bitcoin Data Ġin Ġbitcoin Market Price List ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitcoin Price List Entries . add ( Entry ( i , Ġbitcoin Data . value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitcoin Price Dates . add ( bitcoin Data . date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbitcoin DataSet Ġ= ĠLine DataSet ( bitcoin Price List Entries , Ġ" Bitcoin ĠMarket ĠPrice Ġ( USD )") ĊĠĠĠĠĠĠĠ Ġbitcoin DataSet . value Text Size Ġ= Ġ 1 0 f ĊĊĠĠĠĠĠĠĠ Ġval Ġline Data Ġ= ĠLine Data ( bitcoin DataSet Ġas ĠLine DataSet ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠX Ġaxis ĊĠĠĠĠĠĠĠ Ġval Ġx Axis Ġ= Ġ Ġdata _ graph . xAxis ĊĠĠĠĠĠĠĠ Ġx Axis . position Ġ= ĠX Axis . X Axis Position . BOTTOM ĊĠĠĠĠĠĠĠ Ġx Axis . setValue Formatter Ġ{ Ġvalue , Ġ_ Ġ-> Ġbitcoin Price Dates [ value . toInt ()] Ġ} ĊĠĠĠĠĠĠĠ Ġx Axis . label Rotation Angle Ġ= Ġ 4 0 f ĊĠĠĠĠĠĠĠ Ġx Axis . set Draw Grid Lines ( false ) ĊĠĠĠĠĠĠĠ Ġx Axis . gran ularity Ġ= Ġ 1 f ĊĊĠĠĠĠĠĠĠ Ġ// ĠY Ġaxis ĊĠĠĠĠĠĠĠ Ġdata _ graph . axis Right . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġdata _ graph . axis Left . gran ularity Ġ= Ġ 1 f ĊĊĠĠĠĠĠĠĠ Ġdata _ graph . data Ġ= Ġline Data ĊĠĠĠĠĠĠĠ Ġdata _ graph . set Pin ch Zoom ( true ) ĊĠĠĠĠĠĠĠ Ġdata _ graph . is Double Tap To Zoom Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġdata _ graph . animate X ( 2 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġdata _ graph . invalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠCallback s ĊĠĠĠ Ġoverride Ġfun Ġon Bitcoin Market Price Retrie ved ( bitcoin Market Price List : ĠList < Bitcoin Data >) Ġ{ ĊĠĠĠĠĠĠĠ Ġdisplay Content ( true ) ĊĠĠĠĠĠĠĠ Ġset Graph Data ( bitcoin Market Price List ) ĊĠĠĠĠĠĠĠ Ġhide Progress () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bitcoin Market Price Retrie ving Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġdisplay Content ( false ) ĊĠĠĠĠĠĠĠ ĠLogger Utils . log Message (" BIT CO IN ĠDATA ", Ġ" Error ") ĊĠĠĠĠĠĠĠ Ġhide Progress () ĊĠĠĠ Ġ} Ċ } Ċ