package Ġcom . cyber log ite c . fre ight 9 . ui . market watch Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . Popup Window Ċ import Ġandroidx . core . content . Context Compat . getColor Ċ import Ġandroidx . core . content . Context Compat . get Drawable Ċ import Ġandroidx . core . content . res . Resources Compat . getFont Ċ import Ġcom . cyber log ite c . fre ight 9 . R Ċ import Ġcom . cyber log ite c . fre ight 9 . common . Base ViewModel Ċ import Ġcom . cyber log ite c . fre ight 9 . lib . model . Chart Ċ import Ġcom . cyber log ite c . fre ight 9 . lib . model . Market Watch Product Week Detail Chart List Ċ import Ġcom . cyber log ite c . fre ight 9 . lib . model . Moving Average Ċ import Ġcom . cyber log ite c . fre ight 9 . lib . util . Intent s Ċ import Ġcom . cyber log ite c . fre ight 9 . lib . util . set Safe OnClickListener Ċ import Ġcom . cyber log ite c . fre ight 9 . lib . util . toDate Ċ import Ġcom . github . mike phil . chart ing . charts . Combined Chart Ċ import Ġcom . github . mike phil . chart ing . components . X Axis Ċ import Ġcom . github . mike phil . chart ing . components . Y Axis Ċ import Ġcom . github . mike phil . chart ing . data .* Ċ import Ġcom . github . mike phil . chart ing . formatter . Value Formatter Ċ import Ġcom . github . mike phil . chart ing . highlight . Highlight Ċ import Ġcom . github . mike phil . chart ing . listener . Chart Touch Listener Ċ import Ġcom . github . mike phil . chart ing . listener . On Chart Gesture Listener Ċ import Ġcom . github . mike phil . chart ing . listener . On Chart Value Selected Listener Ċ import Ġcom . github . mike phil . chart ing . renderer . Combined Chart Renderer Ċ import Ġcom . github . mike phil . chart ing . renderer . Ext ention Line Chart Renderer Ċ import Ġcom . github . mike phil . chart ing . utils . Utils Ċ import Ġcom . trello . rx lifecycle 3 . components . support . Rx Fragment Ċ import Ġcom . trello . rx lifecycle 3 . kotlin . bind To Lifecycle Ċ import Ġkotlinx . android . synt hetic . main . act _ market _ watch . iv _ close _ 1 Ċ import Ġkotlinx . android . synt hetic . main . act _ market _ watch . iv _ close _ 2 Ċ import Ġkotlinx . android . synt hetic . main . act _ market _ watch . iv _ close _ 3 Ċ import Ġkotlinx . android . synt hetic . main . act _ market _ watch . iv _ go _ setting Ċ import Ġkotlinx . android . synt hetic . main . act _ market _ watch . ll _ ma _ 1 Ċ import Ġkotlinx . android . synt hetic . main . act _ market _ watch . ll _ ma _ 2 Ċ import Ġkotlinx . android . synt hetic . main . act _ market _ watch . ll _ ma _ 3 Ċ import Ġkotlinx . android . synt hetic . main . act _ market _ watch . tv _ ma _ 1 Ċ import Ġkotlinx . android . synt hetic . main . act _ market _ watch . tv _ ma _ 2 Ċ import Ġkotlinx . android . synt hetic . main . act _ market _ watch . tv _ ma _ 3 Ċ import Ġkotlinx . android . synt hetic . main . chart _ marker . view .* Ċ import Ġkotlinx . android . synt hetic . main . frag _ market _ week _ deal . c andle _ chart Ċ import Ġkotlinx . android . synt hetic . main . frag _ watch _ deal _ chart . rl _ chart _ container Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . text . DateFormat Ċ import Ġjava . text . Decimal Format Ċ import Ġjava . text . NumberFormat Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ import Ġkotlin . math . abs Ċ import Ġkotlin . math . floor Ċ import Ġkotlin . math . round ToInt Ċ Ċ class ĠMarket Watch Deal Fragment Ġconstructor ( val ĠviewModel : ĠBase ViewModel ): ĠRx Fragment (), ĠOn Chart Value Selected Listener , ĠOn Chart Gesture Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġvolume Chart Ratio Ġ= Ġ 1 . 5 f ĊĠĠĠ Ġprivate Ġvar Ġchart Zero Offset Ġ= Ġ 0 . 1 5 f ĊĠĠĠ Ġprivate Ġvar Ġchart Offset Ġ= Ġ 1 Ġ- Ġchart Zero Offset ĊĊĠĠĠ Ġprivate Ġvar Ġchart Setting : ĠChart Ġ= ĠChart ( store Id Ġ= Ġthis . java Class . simple Name ) ĊĠĠĠ Ġprivate Ġvar Ġdata List : ĠArrayList < Market Watch Product Week Detail Chart List . Week Items > Ġ= ĠArrayList () ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Ġ= Ġinflater . inflate ( R . layout . frag _ watch _ deal _ chart , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ ĠTim ber . v (" f 9 : Ġon View Created ") ĊĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠĠĠĠĠ Ġinit Listener () ĊĠĠĠĠĠĠĠ Ġinit Chart Setting () ĊĊĠĠĠĠĠĠĠ Ġchart Initialize () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( viewModel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMarket Watch ViewModel Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . out Put s . on Success Request Week Chart List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind To Lifecycle ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . data List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . cells Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . data List . addAll ( it . cells . sorted By Ġ{ Ġit . interval Timestamp }) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . out Put s . refresh To Base week () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind To Lifecycle ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġm View Ġ= Ġlayout Inflater . inflate ( R . layout . chart _ marker , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġiv _ go _ setting . set Safe OnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context !! , ĠMarket Watch Setting Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" type ", ĠMarket Watch Setting Activity . Watch Ui Type . CH ART _ SET ING _ MA ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Intent s . MARK ET _ WATCH _ CH ART _ SETTING , Ġchart Setting ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity !!. startActivity For Result ( intent , ĠMarket Watch Activity . P ICK _ CH ART _ SETTING _ REQUEST ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġiv _ close _ 1 . set Safe OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchart Setting . moving Average ?. get ( 0 )?. selected Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( viewModel Ġas ĠMarket Watch ViewModel ). in Put s . store Chart Setting ( chart Setting ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġiv _ close _ 2 . set Safe OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchart Setting . moving Average ?. get ( 1 )?. selected Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( viewModel Ġas ĠMarket Watch ViewModel ). in Put s . store Chart Setting ( chart Setting ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġiv _ close _ 3 . set Safe OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchart Setting . moving Average ?. get ( 2 )?. selected Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( viewModel Ġas ĠMarket Watch ViewModel ). in Put s . store Chart Setting ( chart Setting ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Chart Setting ( chart : ĠChart ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchart Setting Ġ= Ġchart ĊĠĠĠĠĠĠĠ Ġupdate Data () ĊĠĠĠĠĠĠĠ Ġupdate Ma Ui () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġfun Ġupdate Ma Ui () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor (( index , Ġdata ) Ġin Ġchart Setting . moving Average ?. with Index () !! ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( data . selected !! ) Ġll _ ma _ 1 . visibility Ġ= ĠView . VISIBLE Ġelse Ġll _ ma _ 1 . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ ma _ 1 . text Ġ= Ġ" MA Ġ${ data . per oid . toString () }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( data . selected !! ) Ġll _ ma _ 2 . visibility Ġ= ĠView . VISIBLE Ġelse Ġll _ ma _ 2 . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ ma _ 2 . text Ġ= Ġ" MA Ġ${ data . per oid . toString () }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( data . selected !! ) Ġll _ ma _ 3 . visibility Ġ= ĠView . VISIBLE Ġelse Ġll _ ma _ 3 . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ ma _ 3 . text Ġ= Ġ" MA Ġ${ data . per oid . toString () }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Chart Setting () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( viewModel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMarket Watch ViewModel Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . out Put s . on Success Load Chart Setting () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind To Lifecycle ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Chart Setting ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . out Put s . on Fail Load Chart Setting () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind To Lifecycle ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchart Setting Ġ= ĠChart ( this . java Class . simple Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchart Setting . chart Type Ġ= ĠgetString ( R . string . market _ watch _ chart _ c andle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchart Setting . inter Val Ġ= ĠgetString ( R . string . market _ watch _ chart _ 1 week ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchart Setting . moving Average Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . in Put s . load Chart Setting ( this . java Class . simple Name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* private Ġfun Ġmake Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġdata List . clear () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 1 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlow : ĠFloat Ġ= ĠgetRandom ( 5 0 0 f , 1 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhigh : ĠFloat Ġ= ĠgetRandom ( 5 0 0 f , low ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopen : ĠFloat Ġ= ĠgetRandom ( high Ġ- Ġlow , low ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeal : ĠFloat Ġ= ĠgetRandom ( high Ġ- Ġlow , low ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata List . add ( Market Watch Product Week Detail Chart List . Week Items (" 2 0 1 9 0 1 ", Ġ" open ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen . toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlow . toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhigh . toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeal . toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetRandom ( 1 2 0 0 f , 1 0 0 f ). toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar . getInstance (). time . toString ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}*/ ĊĠĠĠ Ġprivate Ġfun Ġmake Ma Data ( period : ĠInt , Ġoffset : ĠInt ): ĠArrayList < Entry > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentries Ġ= ĠArrayList < Entry >() ĊĠĠĠĠĠĠĠ Ġfor Ġ(( index , Ġdata ) Ġin Ġdata List . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( index + 1 Ġ>= Ġperiod Ġ/* + Ġoffset */) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprice Ġ= Ġdata List . sub List ( index + 1 Ġ- period , index + 1 ). sum By Double Ġ{ Ġit . close Ġ} / period ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( index Ġ+ 1 f Ġ+ Ġoffset Ġ<= Ġdata List . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries . add ( Entry ( index + 1 f Ġ+ Ġoffset , Ġprice . toFloat ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġentries ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠTim ber . v (" f 9 : Ġon Activity Created ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ ĠTim ber . v (" f 9 : Ġon Destroy ") ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchart Initialize (){ ĊĊĠĠĠĠĠĠĠ Ġc andle _ chart . description . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġc andle _ chart . set BackgroundColor ( context ?. let Ġ{ Ġget Color ( it , ĠR . color . color _ 0 d 0 d 0 d )} !! ) ĊĠĠĠĠĠĠĠ Ġc andle _ chart . set Draw Grid Background ( false ) ĊĠĠĠĠĠĠĠ Ġc andle _ chart . xAxis . set Draw Grid Lines ( false ) ĊĠĠĠĠĠĠĠ Ġc andle _ chart . axis Left . set Draw Grid Lines ( false ) ĊĠĠĠĠĠĠĠ Ġc andle _ chart . axis Right . set Draw Grid Lines ( false ) ĊĠĠĠĠĠĠĠ Ġc andle _ chart . is AutoScale MinMax Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġc andle _ chart . set Pin ch Zoom ( false ) ĊĠĠĠĠĠĠĠ Ġc andle _ chart . is Scale X Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġc andle _ chart . is Scale Y Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġc andle _ chart . set Draw Bar Shadow ( false ) ĊĠĠĠĠĠĠĠ Ġc andle _ chart . legend . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġc andle _ chart . is Highlight Full Bar Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġc andle _ chart . extra Bottom Offset Ġ= Ġ 2 5 f ĊĊĠĠĠĠĠĠĠ Ġc andle _ chart . draw Order Ġ= ĠarrayOf ( Combined Chart . Draw Order . BAR , ĠCom bined Chart . Draw Order . C AND LE ) ĊĊĠĠĠĠĠĠĠ Ġval Ġright Axis Ġ= Ġc andle _ chart . axis Right ĊĠĠĠĠĠĠĠ Ġright Axis . set Draw Grid Lines ( false ) Ċ // ĠĠĠĠĠĠĠ Ġright Axis . axis Minimum Ġ= Ġ 0 f Ġ// Ġthis Ġreplaces Ġset Start At + Zero ( true ) ĊĠĠĠĠĠĠĠ Ġright Axis . type face Ġ= Ġget Font ( context !! , ĠR . font . opens ans _ bold ) !! ĊĠĠĠĠĠĠĠ Ġright Axis . textColor Ġ= Ġget Color ( context !! , R . color . grey ish _ brown ) ĊĠĠĠĠĠĠĠ Ġright Axis . text Size Ġ= Ġ 1 3 f ĊĠĠĠĠĠĠĠ Ġright Axis . min Width Ġ= Ġ 4 8 f ĊĠĠĠĠĠĠĠ Ġright Axis . set Draw Axis Line ( true ) ĊĠĠĠĠĠĠĠ Ġright Axis . axis Line Color Ġ= Ġget Color ( context !! , ĠR . color . color _ 1 a 1 a 1 a ) Ċ // ĠĠĠĠĠĠĠ Ġright Axis . set Draw Zero Line ( true ) ĊĊĠĠĠĠĠĠĠ Ġval Ġleft Axis Ġ= Ġc andle _ chart . axis Left ĊĠĠĠĠĠĠĠ Ġleft Axis . axis Minimum Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġleft Axis . min Width Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġleft Axis . set Draw Labels ( false ) ĊĠĠĠĠĠĠĠ Ġleft Axis . set Draw Axis Line ( false ) ĊĊĠĠĠĠĠĠĠ Ġval Ġx Axis Ġ= Ġc andle _ chart . xAxis ĊĠĠĠĠĠĠĠ Ġx Axis . position Ġ= ĠX Axis . X Axis Position . BOTTOM ĊĠĠĠĠĠĠĠ Ġx Axis . axis Minimum Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġx Axis . m Label Height Ġ= Ġ 1 0 0 Ċ // ĠĠĠĠĠĠĠ Ġx Axis . setLabel Count ( 3 , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġx Axis . type face Ġ= Ġget Font ( context !! , ĠR . font . opens ans _ bold ) !! ĊĠĠĠĠĠĠĠ Ġx Axis . textColor Ġ= Ġget Color ( context !! , ĠR . color . grey ish _ brown ) ĊĠĠĠĠĠĠĠ Ġx Axis . text Size Ġ= Ġ 1 3 f ĊĠĠĠĠĠĠĠ Ġx Axis . axis Minimum Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠ Ġx Axis . m Label Width Ġ= Ġ 3 0 ĊĠĠĠĠĠĠĠ Ġx Axis . set Multi Line Label ( true ) ĊĠĠĠĠĠĠĠ Ġx Axis . gran ularity Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠ Ġx Axis . set Draw Axis Line ( true ) ĊĠĠĠĠĠĠĠ Ġx Axis . axis Line Color Ġ= Ġget Color ( context !! , ĠR . color . color _ 1 a 1 a 1 a ) ĊĊĠĠĠĠĠĠĠ Ġc andle _ chart . setOn Chart Value Selected Listener ( this ) ĊĠĠĠĠĠĠĠ Ġc andle _ chart . on Chart Gesture Listener Ġ= Ġthis ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( this . data List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( c andle _ chart . data Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc andle _ chart . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġc andle _ chart . move View To X ( 0 f ) ĊĊĠĠĠĠĠĠĠ Ġc andle _ chart . draw Order Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCom bined Chart . Draw Order . BAR , ĠCom bined Chart . Draw Order . C AND LE , ĠCom bined Chart . Draw Order . LINE ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠCom bined Data () ĊĠĠĠĠĠĠĠ Ġwhen ( chart Setting . chart Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . market _ watch _ chart _ line ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . setData ( generate Line Data ( data List , Ġget Color ( context !! , ĠR . color . color _ chart _ mount ain _ line ), Ġuse Value Label Ġ= Ġfalse , Ġonly MA Ġ= Ġfalse )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . market _ watch _ chart _ mount ain ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . setData ( generate Mount ain Data ( data List , false )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . setData ( generate Line Data ( data List , Ġget Color ( context !! , ĠR . color . color _ chart _ mount ain _ line ), Ġuse Value Label Ġ= Ġfalse , Ġonly MA Ġ= Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . setData ( generate C andle Data ( data List )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata . setData ( generate Volume Data ( data List )) ĊĊĠĠĠĠĠĠĠ Ġc andle _ chart . xAxis . axis Maximum Ġ= Ġdata . x Max Ġ+ Ġ 0 . 2 5 f ĊĠĠĠĠĠĠĠ Ġc andle _ chart . xAxis . axis Minimum Ġ= Ġ 1 Ġ- Ġ 0 . 2 5 f ĊĠĠĠĠĠĠĠ Ġ// ê±° ëŀĺ ëŁ ī Ġì° ¨ íĬ¸ Ġy Ġìµľ ëĮĢ ê°Ĵ ĊĠĠĠĠĠĠĠ Ġval Ġy Axis Left Ġ= Ġc andle _ chart . get Axis ( Y Axis . Axis Dependency . LEFT ) ĊĠĠĠĠĠĠĠ Ġval Ġmax Ġ= Ġdata List . max By Ġ{ Ġit . volume Ġ} ĊĠĠĠĠĠĠĠ Ġy Axis Left . axis Maximum Ġ= Ġmax !!. volume . toFloat ()/ volume Chart Ratio Ġ* 1 0 ĊĠĠĠĠĠĠĠ Ġval Ġy Axis Right Ġ= Ġc andle _ chart . get Axis ( Y Axis . Axis Dependency . RIGHT ) ĊĠĠĠĠĠĠĠ Ġc andle _ chart . axis Left . space Top Ġ= Ġ 1 0 0 f ĊĊĠĠĠĠĠĠĠ Ġwhen ( chart Setting . inter Val ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . market _ watch _ chart _ 1 day ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠX Axis Day Formatter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc andle _ chart . xAxis . value Formatter Ġ= Ġformatter } ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . market _ watch _ chart _ 1 week ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠX Axis Week Formatter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc andle _ chart . xAxis . value Formatter Ġ= Ġformatter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . market _ watch _ chart _ 1 month ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠX Axis Month Formatter ( data . x Max . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc andle _ chart . xAxis . value Formatter Ġ= Ġformatter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġc andle _ chart . axis Right . value Formatter Ġ= ĠRight Axis Formatter () ĊĊĠĠĠĠĠĠĠ Ġc andle _ chart . zoom ( 1 f , Ġ 0 f , Ġ 0 f , Ġ 0 f ) ĊĊĠĠĠĠĠĠĠ Ġc andle _ chart . data Ġ= Ġdata ĊĊĠĠĠĠĠĠĠ Ġfor ( renderer Ġin Ġ( c andle _ chart . renderer Ġas ĠCom bined Chart Renderer ). sub Render ers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( renderer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠExt ention Line Chart Renderer Ġ-> Ġ{ Ġrenderer . m Draw Fill Offset Per Bottom Ġ= Ġchart Zero Offset } ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġy Axis Right . axis Minimum Ġ= Ġ-( c andle _ chart . get Axis ( Y Axis . Axis Dependency . RIGHT ). axis Maximum * chart Zero Offset / chart Offset ) ĊĠĠĠĠĠĠĠ Ġvar Ġoffset Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġif ( data List . size Ġ< Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ= Ġ 1 0 Ġ- Ġdata List . size ĊĠĠĠĠĠĠĠ Ġc andle _ chart . zoom ((( data List . size . toFloat ()+ offset )/( 1 0 f ))/ c andle _ chart . scale X , 0 f , 0 f , 0 f ) ĊĠĠĠĠĠĠĠ Ġc andle _ chart . move View To X ( data . x Max ) ĊĠĠĠĠĠĠĠ Ġrefresh C andle Range () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgenerate Volume Data ( data List : ĠArrayList < Market Watch Product Week Detail Chart List . Week Items >): ĠBar Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentries Ġ= ĠArrayList < Bar Entry >() ĊĠĠĠĠĠĠĠ Ġval Ġcolors Ġ= ĠArrayList < Int >() ĊĠĠĠĠĠĠĠ Ġvar Ġoffset Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġif ( data List . size Ġ< Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ= Ġ 1 0 Ġ- Ġdata List . size ĊĠĠĠĠĠĠĠ Ġfor Ġ(( index , Ġdata ) Ġin Ġdata List . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentries . add ( Bar Entry ( index + 1 f Ġ+ Ġoffset , Ġdata . volume . toFloat ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ colors . add ( getColor ( context !! , ĠR . color . color _ chart _ bar _ volume _ down ))} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( data List [ index - 1 ]. volume Ġ> Ġdata . volume ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolors . add ( getColor ( context !! , ĠR . color . color _ chart _ bar _ volume _ down )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolors . add ( getColor ( context !! , ĠR . color . color _ chart _ bar _ volume _ up )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠBar DataSet ( entries , Ġ" Bar Ġ 1 ") ĊĠĠĠĠĠĠĠ Ġset . color Ġ= ĠColor . rgb ( 7 6 , Ġ 7 6 , Ġ 7 6 ) ĊĠĠĠĠĠĠĠ Ġset . axis Dependency Ġ= ĠY Axis . Axis Dependency . LEFT ĊĠĠĠĠĠĠĠ Ġset . set Draw Values ( false ) ĊĠĠĠĠĠĠĠ Ġset . colors Ġ= Ġcolors ĊĊĠĠĠĠĠĠĠ Ġval Ġbar Width Ġ= Ġ 0 . 4 5 f Ġ// Ġx 2 Ġdataset ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠBar Data ( set ) ĊĠĠĠĠĠĠĠ Ġd . is Highlight Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġd . bar Width Ġ= Ġbar Width ĊĊĠĠĠĠĠĠĠ Ġreturn Ġd ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġgenerate C andle Data ( data List : ĠArrayList < Market Watch Product Week Detail Chart List . Week Items >): ĠC andle Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠC andle Data () ĊĠĠĠĠĠĠĠ Ġval Ġentries Ġ= ĠArrayList < C andle Entry >() ĊĊĠĠĠĠĠĠĠ Ġvar Ġoffset Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġif ( data List . size Ġ< Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ= Ġ 1 0 Ġ- Ġdata List . size ĊĊĠĠĠĠĠĠĠ Ġfor Ġ(( index , Ġdata ) Ġin Ġdata List . with Index ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġentries . add ( C andle Entry ( index Ġ+ Ġ 1 f Ġ+ Ġoffset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . high . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . low . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . open . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . close . toFloat (), data )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . x Val Ġ= Ġindex Ġ+ Ġ 1 f Ġ+ Ġoffset ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠC andle DataSet ( entries , Ġ" C andle ĠDataSet ") ĊĠĠĠĠĠĠĠ Ġset . de creasing Color Ġ= ĠColor . rgb ( 0 , Ġ 5 8 , Ġ 2 5 5 ) ĊĠĠĠĠĠĠĠ Ġset . in creasing Color Ġ= ĠColor . rgb ( 0 , Ġ 1 7 9 , Ġ 1 6 0 ) ĊĠĠĠĠĠĠĠ Ġset . neutral Color Ġ= Ġget Color ( context !! , ĠR . color . grey ish _ brown ) ĊĠĠĠĠĠĠĠ Ġset . high Light Color Ġ= Ġget Color ( context !! , ĠR . color . white ) ĊĠĠĠĠĠĠĠ Ġset . color Ġ= Ġget Color ( context !! , ĠR . color . color _ chart _ mount ain _ line ) ĊĠĠĠĠĠĠĠ Ġset . enable D ashed Highlight Line ( Utils . convert Dp To Pixel ( 1 f ), 1 0 f , 0 f ) ĊĠĠĠĠĠĠĠ Ġset . in creasing Paint Style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠ Ġset . axis Dependency Ġ= ĠY Axis . Axis Dependency . RIGHT ĊĠĠĠĠĠĠĠ Ġset . shadow Color Ġ= ĠColor . DK GRAY ĊĠĠĠĠĠĠĠ Ġset . bar Space Ġ= Ġ 0 . 3 f ĊĠĠĠĠĠĠĠ Ġset . value Text Size Ġ= Ġ 1 3 f ĊĠĠĠĠĠĠĠ Ġset . value TextColor Ġ= Ġget Color ( context !! , ĠR . color . color _ 1 4 1 4 1 4 ) ĊĠĠĠĠĠĠĠ Ġset . valueType face Ġ= Ġget Font ( context !! , ĠR . font . opens ans _ extr ab old ) ĊĠĠĠĠĠĠĠ Ġset . set Draw Values ( false ) ĊĠĠĠĠĠĠĠ Ġd . add DataSet ( set ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġd ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġtimestamp List : ĠArrayList < String > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġfun Ġgenerate Line Data ( data List : ĠArrayList < Market Watch Product Week Detail Chart List . Week Items >, Ġcolor : ĠInt , Ġuse Value Label : ĠBoolean , Ġonly MA : ĠBoolean ): ĠLine Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠLine Data () ĊĠĠĠĠĠĠĠ Ġval Ġentries Ġ= ĠArrayList < Entry >() ĊĊĊĠĠĠĠĠĠĠ Ġvar Ġoffset Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġif ( data List . size Ġ< Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ= Ġ 1 0 Ġ- Ġdata List . size ĊĊĠĠĠĠĠĠĠ Ġif ( only MA . not ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( index , Ġdata ) Ġin Ġdata List . with Index ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries . add ( Entry ( index Ġ+ Ġ 1 f Ġ+ Ġoffset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . close . toFloat (), Ġdata )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . x Val Ġ= Ġindex Ġ+ Ġ 1 f Ġ+ Ġoffset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠLine DataSet ( entries , Ġ" Line ĠDataSet ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . axis Dependency Ġ= ĠY Axis . Axis Dependency . RIGHT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . value Text Size Ġ= Ġ 1 3 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . value TextColor Ġ= Ġget Color ( context !! , ĠR . color . color _ 1 4 1 4 1 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . valueType face Ġ= Ġget Font ( context !! , ĠR . font . opens ans _ extr ab old ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . color Ġ= Ġcolor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . lineWidth Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . high Light Color Ġ= Ġget Color ( context !! , ĠR . color . white ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . enable D ashed Highlight Line ( Utils . convert Dp To Pixel ( 1 f ), Ġ 1 0 f , Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . is Draw Value Label Ġ= Ġuse Value Label ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . set Draw Circ les ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . set Draw Values ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . add DataSet ( set ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġfor ( data Ġin Ġchart Setting . moving Average !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( data . selected ?. not () !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . add DataSet ( make Moving Average Data ( data )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġreturn Ġd ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmake Moving Average Data ( data : ĠMoving Average ): ĠLine DataSet Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠLine DataSet ( make Ma Data ( data . per oid !!. toInt (), Ġdata . offset !!. toInt ()), Ġ" Line ĠDataSet ") ĊĠĠĠĠĠĠĠ Ġset . axis Dependency Ġ= ĠY Axis . Axis Dependency . RIGHT ĊĠĠĠĠĠĠĠ Ġset . value Text Size Ġ= Ġ 1 3 f ĊĠĠĠĠĠĠĠ Ġset . value TextColor Ġ= Ġget Color ( context !! , ĠR . color . color _ 1 4 1 4 1 4 ) ĊĠĠĠĠĠĠĠ Ġset . valueType face Ġ= Ġget Font ( context !! , ĠR . font . opens ans _ extr ab old ) ĊĠĠĠĠĠĠĠ Ġset . color Ġ= Ġdata . color ĊĠĠĠĠĠĠĠ Ġset . lineWidth Ġ= Ġ 0 . 5 f ĊĠĠĠĠĠĠĠ Ġset . is Draw Value Label Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġset . set Draw Circ les ( false ) ĊĠĠĠĠĠĠĠ Ġset . set Draw Values ( false ) ĊĠĠĠĠĠĠĠ Ġset . is Highlight Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset . mode Ġ= ĠLine DataSet . Mode . C UB IC _ BE ZI ER ĊĠĠĠĠĠĠĠ Ġreturn Ġset ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġgenerate Mount ain Data ( data List : ĠArrayList < Market Watch Product Week Detail Chart List . Week Items >, Ġuse Value Label : ĠBoolean ): ĠLine Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠLine Data () ĊĠĠĠĠĠĠĠ Ġval Ġentries Ġ= ĠArrayList < Entry >() ĊĊĠĠĠĠĠĠĠ Ġvar Ġoffset Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġif ( data List . size Ġ< Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ= Ġ 1 0 Ġ- Ġdata List . size ĊĊĠĠĠĠĠĠĠ Ġfor Ġ(( index , Ġdata ) Ġin Ġdata List . with Index ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġentries . add ( Entry ( index Ġ+ Ġ 1 f Ġ+ Ġoffset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . close . toFloat (), data )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . x Val Ġ= Ġindex Ġ+ Ġ 1 f Ġ+ Ġoffset ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠLine DataSet ( entries , Ġ" Mount ain ĠDataSet ") ĊĠĠĠĠĠĠĠ Ġset . axis Dependency Ġ= ĠY Axis . Axis Dependency . RIGHT ĊĠĠĠĠĠĠĠ Ġset . value Text Size Ġ= Ġ 2 0 f ĊĠĠĠĠĠĠĠ Ġset . color Ġ= Ġget Color ( context !! , ĠR . color . color _ chart _ mount ain _ line ) ĊĠĠĠĠĠĠĠ Ġset . lineWidth Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠ Ġset . set Draw Filled ( true ) ĊĠĠĠĠĠĠĠ Ġset . fill Drawable Ġ= Ġget Drawable ( context !! , ĠR . drawable . fade _ chart _ bf bf bf ) ĊĠĠĠĠĠĠĠ Ġset . high Light Color Ġ= Ġget Color ( context !! , ĠR . color . white ) ĊĠĠĠĠĠĠĠ Ġset . enable D ashed Highlight Line ( Utils . convert Dp To Pixel ( 1 f ), 1 0 f , 0 f ) ĊĠĠĠĠĠĠĠ Ġset . set Draw Circ les ( false ) ĊĠĠĠĠĠĠĠ Ġset . set Draw Values ( false ) ĊĠĠĠĠĠĠĠ Ġset . value Text Size Ġ= Ġ 1 3 f ĊĠĠĠĠĠĠĠ Ġset . value TextColor Ġ= Ġget Color ( context !! , ĠR . color . color _ 1 4 1 4 1 4 ) ĊĠĠĠĠĠĠĠ Ġset . valueType face Ġ= Ġget Font ( context !! , ĠR . font . opens ans _ extr ab old ) ĊĠĠĠĠĠĠĠ Ġset . is Draw Value Label Ġ= Ġuse Value Label ĊĠĠĠĠĠĠĠ Ġd . add DataSet ( set ) ĊĊĠĠĠĠĠĠĠ Ġfor ( data Ġin Ġchart Setting . moving Average !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( data . selected ?. not () !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . add DataSet ( make Moving Average Data ( data )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġd ĊĠĠĠ Ġ} ĊĠĠĠ Ġ/* private Ġfun ĠgetRandom ( range : ĠFloat , Ġstart : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( Math . random () Ġ* Ġrange ). toFloat () Ġ+ Ġstart ĊĠĠĠ Ġ}*/ ĊĠĠĠ Ġinner Ġclass ĠX Axis Day Formatter Ġ: ĠValue Formatter () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Formatted Value ( value : ĠFloat ): ĠString Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlabel Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcal Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ: ĠMarket Watch Product Week Detail Chart List . Week Items ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġdata List . find Ġ{ Ġit . x Val Ġ== Ġvalue Ġ} !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcal . time Ġ= Ġdata . interval Timestamp . toDate (" yyyy MM dd HH mm ss SSSS SS ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġ"${ data . interval Timestamp . substring ( 4 , 6 )} -${ data . interval Timestamp . substring ( 6 , 8 )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( cal . get ( Calendar . DAY _ OF _ YEAR ) Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel += Ġ"\ n ${ SimpleDateFormat (" yyyy "). format ( cal . time )}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception ) Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlabel ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠX Axis Week Formatter Ġ: ĠValue Formatter () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Formatted Value ( value : ĠFloat ): ĠString Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlabel Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcal Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ: ĠMarket Watch Product Week Detail Chart List . Week Items ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġdata List . find Ġ{ Ġit . x Val Ġ== Ġvalue Ġ} !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcal . time Ġ= Ġdata . interval Timestamp . toDate (" yyyy MM dd HH mm ss SSSS SS ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġ" W ${ SimpleDateFormat (" ww "). format ( cal . time )}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception ) Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlabel ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠX Axis Month Formatter ( count : ĠInt ) Ġ: ĠValue Formatter () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Formatted Value ( value : ĠFloat ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlabel Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcal Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ: ĠMarket Watch Product Week Detail Chart List . Week Items ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġdata List . find Ġ{ Ġit . x Val Ġ== Ġvalue Ġ} !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcal . time Ġ= Ġdata . interval Timestamp . toDate (" yyyy MM dd HH mm ss SSSS SS ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= ĠSimpleDateFormat (" MMM "). format ( cal . time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( cal . get ( Calendar . MONTH ) Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel += Ġ"\ n ${ SimpleDateFormat (" yyyy "). format ( cal . time )}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception ) Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlabel ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġinner Ġclass ĠRight Axis Formatter Ġ: ĠValue Formatter () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Formatted Value ( value : ĠFloat ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value Ġ> 0 ) ĠDecimal Format ("# , ### "). format ( value . to Long ()) Ġelse Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Nothing Selected () Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Value Selected ( p 0 : ĠEntry ?, Ġp 1 : ĠHighlight ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Marker View ( p 0 ?. data Ġas ĠMarket Watch Product Week Detail Chart List . Week Items ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġm Pos X Ġ: ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Pos Y Ġ: ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Popup Window Ġ: ĠPopup Window ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm View Ġ: ĠView ĊĠĠĠ Ġ@ Suppress Lint (" Click ableView Accessibility ", Ġ" SimpleDateFormat ", Ġ" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġfun Ġshow Marker View ( data : ĠMarket Watch Product Week Detail Chart List . Week Items ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrency Format : ĠNumber Format Ġ= ĠNumber Format . getC urrency Instance ( Locale . US ) ĊĠĠĠĠĠĠĠ Ġcurrency Format . minimum Fraction Digits Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġcal Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġdf : ĠDate Format Ġ= ĠSimpleDateFormat (" yyyy . MM . dd ") ĊĊĠĠĠĠĠĠĠ Ġcal . time Ġ= data . interval Timestamp . toDate (" yyyy MM dd HH mm ss SSSS SS ") ĊĠĠĠĠĠĠĠ Ġm View . tv _ marker _ deal date . text Ġ= Ġ Ġdf . format ( cal . time ) ĊĠĠĠĠĠĠĠ Ġm View . tv _ marker _ volume . text Ġ= Ġ"${ data . volume . toInt ()} T " ĊĠĠĠĠĠĠĠ Ġm View . tv _ marker _ open . text Ġ= Ġ"${ currency Format . format ( data . open . toInt ()) }/ T " ĊĠĠĠĠĠĠĠ Ġm View . tv _ marker _ high . text Ġ= Ġ"${ currency Format . format ( data . high . toInt ()) }/ T " ĊĠĠĠĠĠĠĠ Ġm View . tv _ marker _ low . text Ġ= Ġ"${ currency Format . format ( data . low . toInt ()) }/ T " ĊĠĠĠĠĠĠĠ Ġm View . tv _ marker _ closed . text Ġ= Ġ"${ currency Format . format ( data . close . toInt ()) }/ T " ĊĠĠĠĠĠĠĠ Ġif Ġ(:: m Popup Window . isInitialized . not ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Popup Window Ġ= ĠPopup Window ( m View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= ĠInt Array ( 2 ) ĊĠĠĠĠĠĠĠ Ġrl _ chart _ container !!. getLocation On Screen ( location ) ĊĠĠĠĠĠĠĠ Ġm Pos Y Ġ= Ġlocation [ 1 ] ĊĠĠĠĠĠĠĠ Ġm Pos X Ġ= Ġlocation [ 0 ] ĊĠĠĠĠĠĠĠ Ġm Popup Window . is Outside Touchable Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Popup Window . show At Location ( rl _ chart _ container , ĠGr avity . NO _ GR AV ITY , Ġm Pos X , Ġm Pos Y ) ĊĊĊĠĠĠĠĠĠĠ Ġval Ġlimit Location Ġ= ĠInt Array ( 2 ) ĊĠĠĠĠĠĠĠ Ġrl _ chart _ container !!. getLocation On Screen ( limit Location ) ĊĠĠĠĠĠĠĠ Ġvar Ġdx Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġdy Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġorig X Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġorig Y Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġm View . setOn Touch Listener Ġ{ Ġv , Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ DOWN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorig X Ġ= Ġevent . raw X . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorig Y Ġ= Ġevent . raw Y . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ MOVE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdx Ġ= Ġ( event . raw X Ġ- Ġorig X ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdy Ġ= Ġ( event . raw Y Ġ- Ġorig Y ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Popup Window . update ( m Pos X Ġ+ Ġdx , Ġif ( limit Location [ 1 ] Ġ> Ġ( m Pos Y Ġ+ Ġdy )) Ġlimit Location [ 1 ] Ġelse Ġm Pos Y Ġ+ Ġdy ,- 1 ,- 1 , true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ UP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Pos X Ġ+= Ġdx ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Pos Y Ġ+= Ġdy ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( viewModel : ĠBase ViewModel ) Ġ: ĠMarket Watch Deal Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMarket Watch Deal Fragment ( viewModel ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Chart Gesture End ( p 0 : ĠMotion Event ?, Ġp 1 : ĠChart Touch Listener . Chart Gesture ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġrefresh C andle Range () ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġon Chart Fl ing ( p 0 : ĠMotion Event ?, Ġp 1 : ĠMotion Event ?, Ġp 2 : ĠFloat , Ġp 3 : ĠFloat ) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Chart Single T apped ( p 0 : ĠMotion Event ?) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Chart Gesture Start ( p 0 : ĠMotion Event ?, Ġp 1 : ĠChart Touch Listener . Chart Gesture ?) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Chart Scale ( p 0 : ĠMotion Event ?, Ġp 1 : ĠFloat , Ġp 2 : ĠFloat ) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Chart Long Pressed ( p 0 : ĠMotion Event ?) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Chart Double T apped ( p 0 : ĠMotion Event ?) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Chart Translate ( p 0 : ĠMotion Event ?, Ġp 1 : ĠFloat , Ġp 2 : ĠFloat ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġrefresh C andle Range () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrefresh C andle Range () Ġ{ ĊĠĠĠĠĠĠĠ Ġif (! data List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( abs ( c andle _ chart . x Chart Max / c andle _ chart . scale X Ġ-( c andle _ chart . highest Visible X Ġ- Ġc andle _ chart . lowest Visible X )) Ġ> Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmin X Ġ= Ġfloor ( c andle _ chart . lowest Visible X ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmax X Ġ= Ġc andle _ chart . highest Visible X . round ToInt (). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( min X Ġ< Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin X Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( max X Ġ> Ġdata List . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax X Ġ= Ġdata List . size . toFloat () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( min X Ġ>= Ġmax X ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmax Ġ= Ġdata List . sub List ( min X . toInt (), Ġmax X . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. max By Ġ{ Ġit . high Ġ} !!. high ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmin Ġ= Ġ-( max ) Ġ/ Ġ( 1 0 - volume Chart Ratio * 2 ) Ġ* Ġvolume Chart Ratio * 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Ġ+= Ġmax Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(!( c andle _ chart . get Axis ( Y Axis . Axis Dependency . RIGHT ). axis Maximum Ġ== Ġmax . toFloat () Ġ&& Ġc andle _ chart . get Axis ( Y Axis . Axis Dependency . RIGHT ). axis Minimum Ġ== Ġmin . toFloat ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc andle _ chart . get Axis ( Y Axis . Axis Dependency . RIGHT ). axis Maximum Ġ= Ġmax . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc andle _ chart . get Axis ( Y Axis . Axis Dependency . RIGHT ). axis Minimum Ġ= Ġmin . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc andle _ chart . invalidate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġoperator Ġfun ĠOn Chart Gesture Listener . invoke () Ġ{ Ċ Ċ } Ċ