package Ġcom . by . he atch art . view . range Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Rect F Ċ import Ġcom . by . he atch art . core . controller . Base Draw Controller Ċ import Ġcom . by . he atch art . data . Chart Data Ċ import Ġcom . by . he atch art . data . range . Range Heat Chart DataSet Ċ Ċ class ĠRange Heat Draw Controller ( context : ĠContext , Ġprivate Ġvar Ġchart Data : ĠChart Data ) Ġ: ĊĠĠĠ ĠBase Draw Controller < Range Heat Chart DataSet >( context , Ġchart Data ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġrange Paint Ġ= ĠPaint () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Reference . get ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrange Paint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrange Paint . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrange Paint . color Ġ= Ġchart Data . chart Color ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// region ĠDraw Controller ĊĠĠĠ Ġoverride Ġfun Ġdraw ( canvas : ĠCanvas , Ġdata : ĠRange Heat Chart DataSet ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdraw Data ( canvas , Ġdata ) ĊĠĠĠĠĠĠĠ Ġdraw Frame ( canvas ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// endregion ĊĊĠĠĠ Ġ// region ĠUtility ĠAPI ĊĠĠĠ Ġprivate Ġfun Ġdraw Data ( canvas : ĠCanvas , Ġdata : ĠRange Heat Chart DataSet ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmin Part Width Ġ= Ġchart Data . calculate Min Part ( data . parts ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠDraw Ġranges Ġfrom Ġdata Ġset ĊĠĠĠĠĠĠĠ Ġdata . range Data . forEach Ġ{ Ġrange Data Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġleft Ġ= Ġrange Data . start Point Ġ* Ġmin Part Width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġrange Data . end Point Ġ* Ġmin Part Width ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrect Ġ= ĠRect F () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrect . left Ġ= Ġleft ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrect . top Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrect . right Ġ= Ġright ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrect . bottom Ġ= Ġchart Data . height . toFloat () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( range Data . is Color Valid ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrange Paint . color Ġ= Ġrange Data . range Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Rect ( rect , Ġrange Paint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠFind Ġempty Ġranges Ġand Ġapply Ġcolor Ġif Ġneeded ĊĠĠĠĠĠĠĠ Ġif Ġ(! chart Data . is BackgroundColor Valid ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// endregion Ċ }