package Ġcom . k yle cor ry . health sense . heart . ui Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroidx . core . graphics . blue Ċ import Ġandroidx . core . graphics . green Ċ import Ġandroidx . core . graphics . red Ċ import Ġcom . github . mike phil . chart ing . charts . Line Chart Ċ 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 Ġcom . k yle cor ry . tr ails ense core . infrastructure . system . Ui Utils Ċ import Ġkotlin . math . max Ċ import Ġkotlin . math . min ĊĊ Ċ class ĠHeart Beat Chart ( private Ġval Ġchart : ĠLine Chart , Ġprivate Ġval Ġcolor : ĠInt ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġgranularity Ġ= Ġ 0 . 5 f ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġchart . description . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġchart . set Touch Enabled ( false ) ĊĠĠĠĠĠĠĠ Ġchart . is Drag Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġchart . set Scale Enabled ( false ) ĊĠĠĠĠĠĠĠ Ġchart . set Draw Grid Background ( false ) ĊĠĠĠĠĠĠĠ Ġchart . set Draw B orders ( false ) ĊĊĠĠĠĠĠĠĠ Ġchart . xAxis . set Draw Labels ( false ) ĊĠĠĠĠĠĠĠ Ġchart . axis Right . set Draw Labels ( false ) ĊĊĠĠĠĠĠĠĠ Ġval Ġprimary Color Ġ= ĠUi Utils . android TextColor Primary ( chart . context ) ĊĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġprimary Color . red ĊĠĠĠĠĠĠĠ Ġval Ġg Ġ= Ġprimary Color . green ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġprimary Color . blue ĊĊĠĠĠĠĠĠĠ Ġchart . xAxis . set Draw Grid Lines ( false ) ĊĠĠĠĠĠĠĠ Ġchart . axis Left . set Draw Grid Lines ( false ) ĊĠĠĠĠĠĠĠ Ġchart . axis Left . set Draw Labels ( false ) ĊĠĠĠĠĠĠĠ Ġchart . axis Left . grid Color Ġ= ĠColor . arg b ( 5 0 , Ġr , Ġg , Ġb ) ĊĠĠĠĠĠĠĠ Ġchart . axis Left . textColor Ġ= ĠColor . arg b ( 1 5 0 , Ġr , Ġg , Ġb ) ĊĠĠĠĠĠĠĠ Ġchart . axis Right . set Draw Grid Lines ( false ) ĊĠĠĠĠĠĠĠ Ġchart . xAxis . set Draw Axis Line ( false ) ĊĠĠĠĠĠĠĠ Ġchart . axis Left . set Draw Axis Line ( false ) ĊĠĠĠĠĠĠĠ Ġchart . axis Right . set Draw Axis Line ( false ) ĊĠĠĠĠĠĠĠ Ġchart . set No Data Text ("") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġplot ( data : ĠList < Float >, Ġpe aks : ĠList < Int > Ġ= ĠlistOf ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= Ġdata . map Indexed Ġ{ Ġindex , Ġvalue Ġ-> ĠEntry ( index . toFloat (), Ġvalue ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġset 1 Ġ= ĠLine DataSet ( values , Ġ" Heart ĠBe at ") ĊĠĠĠĠĠĠĠ Ġset 1 . color Ġ= Ġcolor ĊĠĠĠĠĠĠĠ Ġset 1 . fill Alpha Ġ= Ġ 1 8 0 ĊĠĠĠĠĠĠĠ Ġset 1 . lineWidth Ġ= Ġ 3 f ĊĠĠĠĠĠĠĠ Ġset 1 . set Draw Values ( false ) ĊĠĠĠĠĠĠĠ Ġset 1 . fill Color Ġ= Ġcolor ĊĠĠĠĠĠĠĠ Ġset 1 . set Circle Color ( color ) ĊĠĠĠĠĠĠĠ Ġset 1 . set Draw Circle Hole ( false ) ĊĠĠĠĠĠĠĠ Ġset 1 . set Draw Circ les ( true ) ĊĠĠĠĠĠĠĠ Ġset 1 . circle Radius Ġ= Ġ 1 . 5 f ĊĠĠĠĠĠĠĠ Ġset 1 . set Draw Filled ( false ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpeak Values Ġ= Ġpe aks . map Ġ{ Ġvalue Ġ-> ĠEntry ( value . toFloat (), Ġdata [ value ]) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġset 2 Ġ= ĠLine DataSet ( peak Values , Ġ" Pe aks ") ĊĠĠĠĠĠĠĠ Ġset 2 . color Ġ= ĠColor . TRANSP ARENT ĊĠĠĠĠĠĠĠ Ġset 2 . fill Alpha Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset 2 . lineWidth Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġset 2 . set Draw Values ( false ) ĊĠĠĠĠĠĠĠ Ġset 2 . fill Color Ġ= ĠColor . TRANSP ARENT ĊĠĠĠĠĠĠĠ Ġset 2 . set Circle Color ( Color . WHITE ) ĊĠĠĠĠĠĠĠ Ġset 2 . set Draw Circle Hole ( false ) ĊĠĠĠĠĠĠĠ Ġset 2 . set Draw Circ les ( true ) ĊĠĠĠĠĠĠĠ Ġset 2 . circle Radius Ġ= Ġ 2 f ĊĠĠĠĠĠĠĠ Ġset 2 . set Draw Filled ( false ) ĊĊĊĠĠĠĠĠĠĠ Ġval Ġline Data Ġ= ĠLine Data ( set 1 , Ġset 2 ) ĊĠĠĠĠĠĠĠ Ġchart . data Ġ= Ġline Data ĊĠĠĠĠĠĠĠ Ġchart . legend . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġchart . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġchart . invalidate () ĊĠĠĠ Ġ} Ċ }