package Ġio . horizontal systems . chart view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġio . horizontal systems . chart view . Indicator . C andle Ċ import Ġio . horizontal systems . chart view . databinding . View Chart Minimal Binding Ċ import Ġio . horizontal systems . chart view . models . Chart Config Ċ Ċ class ĠChart Minimal Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠConstraint Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġ= ĠView Chart Minimal Binding . inflate ( LayoutInflater . from ( context ), Ġthis ) ĊĊĠĠĠ Ġprivate Ġval Ġconfig Ġ= ĠChart Config ( context , Ġattrs ) ĊĊĠĠĠ Ġprivate Ġval Ġmain Curve Ġ= ĠChart Curve 2 ( config ) ĊĠĠĠ Ġprivate Ġval Ġmain Gradient Ġ= ĠChart Gradient () ĊĊĠĠĠ Ġfun ĠsetData ( data : ĠChart Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconfig . set Trend Color ( data ) ĊĊĠĠĠĠĠĠĠ Ġval Ġc andle Values Ġ= Ġdata . values By Timestamp ( C andle ) ĊĠĠĠĠĠĠĠ Ġval Ġmin C andle Value Ġ= Ġc andle Values . values . min OrNull () Ġ?: Ġ 0 f ĊĠĠĠĠĠĠĠ Ġval Ġmax C andle Value Ġ= Ġc andle Values . values . max OrNull () Ġ?: Ġ 0 f ĊĊĠĠĠĠĠĠĠ Ġval Ġmain Curve Animator Ġ= ĠCurve Animator ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc andle Values , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . start Timestamp , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . end Timestamp , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmin C andle Value , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax C andle Value , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . chart Main . shape . right , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . chart Main . shape . bottom , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . curve Minimal Vertical Offset , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmain Curve Animator . next Frame ( 1 f ) ĊĊĠĠĠĠĠĠĠ Ġmain Curve . set Shape ( binding . chart Main . shape ) ĊĠĠĠĠĠĠĠ Ġmain Curve . set Curve Animator ( main Curve Animator ) ĊĠĠĠĠĠĠĠ Ġmain Curve . setColor ( config . curve Color ) ĊĊĠĠĠĠĠĠĠ Ġmain Gradient . set Curve Animator ( main Curve Animator ) ĊĠĠĠĠĠĠĠ Ġmain Gradient . set Shape ( binding . chart Main . shape ) ĊĠĠĠĠĠĠĠ Ġmain Gradient . set Shader ( config . curve Gradient ) ĊĊĠĠĠĠĠĠĠ Ġbinding . chart Main . clear () ĊĠĠĠĠĠĠĠ Ġbinding . chart Main . add ( main Curve , Ġmain Gradient ) ĊĊĠĠĠĠĠĠĠ Ġbinding . chart Main . invalidate () ĊĠĠĠ Ġ} Ċ Ċ } Ċ