package Ġcom . y ab u . live chart . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Frame Layout Ċ import Ġcom . y ab u . live chart . model . DataPoint Ċ import Ġcom . y ab u . live chart . model . Dataset Ċ import Ġcom . y ab u . live chart . utils . Public Api Ċ Ċ /** Ċ Ġ* ĠA ĠLive ĠChart Ġdisplays Ġa Ġ 2 ĠDimension al Ġ[ Dataset ]. Ċ Ġ* Ċ Ġ* ĠThe Ġchart Ġcan Ġhave Ġa Ġbaseline Ġonto Ġwhich Ġthe Ġend Ġpoint Ġdata Ġset Ġis Ġcompared Ġto Ġdetermine Ġwhether Ċ Ġ* Ġit Ġhas Ġpositive Ġor Ġnegative Ġchange , Ġand Ġhighlight s Ġthe Ġdata Ġset Ġaccordingly Ġwith Ġcolor . Ċ Ġ* Ċ Ġ* ĠThe Ġend Ġdata Ġpoint Ġcan Ġbe Ġtagged Ġwith Ġa Ġlabel Ġand Ġdraw Ġa Ġline Ġacross Ġthe Ġchart , Ġwith Ġhighlighted Ċ Ġ* Ġcolor Ġaccording Ġto Ġthe Ġbaseline . Ċ Ġ* Ċ Ġ* ĠThe Ġ[ Frame Layout ] Ġcontains Ġtwo Ġmodular Ġcomponents : Ġa Ġ[ Live Chart View ] Ġand Ġa Ġ[ Live Chart Touch Overlay ] Ċ Ġ* Ġworking Ġtogether Ġto Ġhandle Ġdrawing Ġand Ġoffer Ġtouch Ġevents Ġon Ġthe Ġchart . Ċ Ġ* Ġ@ param Ġcontext Ċ Ġ* Ġ@ param Ġattrs Ċ Ġ*/ Ċ class ĠLive Chart ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull ) Ġ: ĠFrame Layout ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġinterface ĠOn Touch Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Touch Callback ( point : ĠData Point ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Touch Finished () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ[ Live Chart View ] Ġreference . ĊĠĠĠĠ Ġ* ĠPass Ġthe Ġattributes Ġto Ġthe Ġchart . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġlive chart Ġ= ĠLive Chart View ( context , Ġattrs ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Params Ġ= ĠLayout Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ[ Live Chart Touch Overlay ] Ġreference . ĊĠĠĠĠ Ġ* ĠPass Ġthe Ġattributes Ġto Ġthe Ġview . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġoverlay Ġ= ĠLive Chart Touch Overlay ( context , Ġattrs ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Params Ġ= ĠLayout Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFlag Ġto Ġdisable Ġtouch Ġoverlay . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġdisable Touch Overlay : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġclip To Outline Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġclip To Padding Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġclip Children Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġthe Ġviews Ġto Ġthe Ġlayout . ĊĠĠĠĠĠĠĠ Ġthis . addView ( live chart ) ĊĠĠĠĠĠĠĠ Ġthis . addView ( overlay ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġ[ dataset ] Ġof Ġthis Ġchart . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġset Dataset ( dataset : ĠDataset ): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . set Dataset ( dataset ) ĊĠĠĠĠĠĠĠ Ġoverlay . set Dataset ( dataset ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe ĠSecond Ġ[ dataset ] Ġof Ġthis Ġchart . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġset Second Dataset ( dataset : ĠDataset ): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . set Second Dataset ( dataset ) ĊĠĠĠĠĠĠĠ Ġoverlay . set Second Dataset ( dataset ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġstyle Ġobject Ġ[ Live Chart Style ] Ġto Ġthis Ġchart . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġset Live Chart Style ( style : ĠLive Chart Style ): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . set Live Chart Style ( style ) ĊĠĠĠĠĠĠĠ Ġoverlay . set Live Chart Style ( style ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw Ġbaseline Ġflag . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdraw Baseline Conditional Color (): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . draw Baseline Conditional Color () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw Ġbaseline Ġflag . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdraw Baseline (): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . draw Baseline () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw Ġbaseline Ġautomatically Ġfrom Ġfirst Ġpoint . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdraw Baseline From First Point (): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . draw Baseline From First Point () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw ĠFill Ġflag . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdraw Fill ( with Gradient : ĠBoolean Ġ= Ġtrue ): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . draw Fill ( with Gradient ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw Ġsmooth Ġpath Ġflag . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdraw Smooth Path (): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . draw Smooth Path () ĊĠĠĠĠĠĠĠ Ġoverlay . draw Smooth Path () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdraw Str aight Path (): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . draw Str aight Path () ĊĠĠĠĠĠĠĠ Ġoverlay . draw Str aight Path () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDisable ĠFill Ġflag . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdisable Fill (): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . disable Fill () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw ĠY Ġbounds Ġflag . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdraw Y Bounds (): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . draw Y Bounds () ĊĠĠĠĠĠĠĠ Ġoverlay . draw Y Bounds () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw Ġlast Ġpoint Ġlabel Ġflag . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdraw Last Point Label (): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . draw Last Point Label () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw Ġdots Ġon Ġline . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdraw Dot s On Line (): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . draw Dot s Online () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġ[ baseline ] Ġdata Ġpoint Ġmanually Ġinstead Ġof Ġdetermining Ġfrom Ġfirst Ġdataset Ġpoint . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġset Baseline Man ually ( baseline : ĠFloat ): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . set Baseline Man ually ( baseline ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġset On Touch Callback Listener ( listener : ĠOn Touch Callback ): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġoverlay . setOn Touch Callback Listener ( listener ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDisable Ġthe Ġtouch Ġoverlay Ġcomponent . ĊĠĠĠĠ Ġ* ĠThis Ġis Ġuseful Ġfor Ġsmall Ġcharts Ġthat Ġdo Ġnot Ġbenefit Ġfrom Ġshowing Ġthe Ġtouch Ġevent ĊĠĠĠĠ Ġ* Ġor Ġas Ġan Ġoptimization Ġif Ġyou Ġrequire Ġless Ġoverhead Ġon Ġyour ĠView . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdisable Touch Overlay (): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġoverlay . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġdisable Touch Overlay Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw Ġvertical Ġguidelines ĊĠĠĠĠ Ġ* Ġ@ param Ġsteps ĠNumber Ġof Ġguidelines ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdraw Vertical Guide lines ( steps : ĠInt ): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . draw Vertical Guide lines ( steps ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw Ġhorizontal Ġguidelines ĊĠĠĠĠ Ġ* Ġ@ param Ġsteps ĠNumber Ġof Ġguidelines ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdraw Horizontal Guide lines ( steps : ĠInt ): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . draw Horizontal Guide lines ( steps ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShow ĠOverlay Ġby Ġdefault , Ġnot Ġjust Ġon Ġtouch . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdraw Touch Overlay Always (): ĠLive Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġdisable Touch Overlay Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġoverlay . always Display () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw Ġon Ġchart Ġand Ġbind Ġoverlay Ġto Ġdataset . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġfun Ġdraw Dataset () Ġ{ ĊĠĠĠĠĠĠĠ Ġlive chart . draw Dataset () ĊĠĠĠĠĠĠĠ Ġif Ġ(! disable Touch Overlay ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverlay . bind To Dataset () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }