package Ġcom . char les . stocks . charts . ui Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġcom . char les . stocks . charts . R Ċ import Ġcom . char les . stocks . charts . constant . KL Type Ċ import Ġcom . char les . stocks . charts . http . KL Response Ċ import Ġcom . char les . stocks . charts . model . Base Response Ċ import Ġcom . char les . stocks . charts . model . Stock Ċ import Ġcom . char les . stocks . charts . view . Base Charts View Ċ import Ġcom . char les . stocks . charts . view . Charts Util Ċ import Ġcom . char les . stocks . charts . view . kl . KL View Ċ import Ġcom . char les . stocks . charts . view . kl . model . KL Node Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġcom . trello . rx lifecycle 4 . components . support . Rx AppCompatActivity Ċ import Ġio . reactivex . rx java 3 . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . rx java 3 . core . Observable Ċ import Ġio . reactivex . rx java 3 . core . Observable On Subscribe Ċ import Ġio . reactivex . rx java 3 . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . activity _ kl _ view .* Ċ import Ġjava . io . Buffered InputStream Ċ Ċ class ĠK L View Activity Ġ: ĠRx AppCompatActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ kl _ view ) ĊĠĠĠĠĠĠĠ Ġkl _ view . set Stock ( Stock . new Stock (" hk 0 0 7 0 0 ") !! ) ĊĠĠĠĠĠĠĠ Ġkl _ view . set KL Type ( KL Type . DAY ) ĊĠĠĠĠĠĠĠ Ġkl _ view . setOn K Line Listener ( object Ġ: ĠK L View . On K Line Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cross Line Change ( node : ĠK L Node ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! top _ btn . isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcross _ view . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcross _ view . visibility Ġ= Ġif Ġ( node Ġ== Ġnull ) ĠView . IN VISIBLE Ġelse ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate _ tv . text Ġ= Ġ"${ Charts Util . format Quote TimeTo YYYY MM DD ( node . m Time )} Ġ${ Charts Util . format Quote Time Week Name ( node . m Time )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ tv . text Ġ= ĠChart s Util . re Build Num Without Zero ( node . m Open , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhighest _ tv . text Ġ= ĠChart s Util . re Build Num Without Zero ( node . m High , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange _ tv . text Ġ= ĠChart s Util . re Build Num Width Sign ( node . m Change , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose _ tv . text Ġ= ĠChart s Util . re Build Num Without Zero ( node . m PC lose , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlowest _ tv . text Ġ= ĠChart s Util . re Build Num Without Zero ( node . m Low , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroc _ tv . text Ġ= Ġ"${ Charts Util . re Build Num Width Sign ( node . m R oc , Ġ 2 )} %" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvolume _ tv . text Ġ= Ġ"${ Charts Util . format Num With Unit Keep 2 Decimal ( node . m Volume )} èĤ¡ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount _ tv . text Ġ= ĠChart s Util . format Num With Unit Keep 2 Decimal ( node . m Amount ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexchange _ tv . text Ġ= Ġ"${ Charts Util . rebuild Number ( node . m Turn over Rate , Ġ 2 )} %" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġradio _ group . setOn Checked ChangeListener Ġ{ Ġ_, Ġchecked Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( checked Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop _ btn . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkl _ view . set Cross Tip Type ( Base Charts View . Cross Tip . Pin Top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat _ btn . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkl _ view . set Cross Tip Type ( Base Charts View . Cross Tip . Float ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġkl _ view . set Cross Tip Type ( if Ġ( top _ btn . isChecked ) ĠBase Charts View . Cross Tip . Pin Top Ġelse ĠBase Charts View . Cross Tip . Float ) ĊĊĠĠĠĠĠĠĠ ĠObservable . create ( Observable On Subscribe < KL Response >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbis Ġ= ĠBuffered InputStream ( assets . open (" k line . json ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse : ĠBase Response < KL Response > Ġ= ĠGson (). fromJson ( bis . reader (), Ġobject Ġ: ĠType Token < Base Response < KL Response >>() Ġ{} . type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( response . data ) ĊĠĠĠĠĠĠĠ Ġ}). observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()). subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkl _ view . add K Line Data ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ