package Ġorg . pro vid ent iam . je j uni is di eb us Ċ Ċ import Ġandroid . animation . Property Values Holder Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Dash Path Effect Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . Navigation View Ċ import Ġandroid . support . graphics . drawable . Animated Vector Drawable Compat Ċ import Ġandroid . support . v 4 . view . Gravity Compat Ċ import Ġandroid . support . v 7 . app . ActionBar Drawer Toggle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġcom . db . chart . animation . Animation Ċ import Ġcom . db . chart . model . Bar Set Ċ import Ġcom . db . chart . renderer . Axis Renderer Ċ import Ġcom . db . chart . tooltip . Tooltip Ċ import Ġcom . db . chart . util . Tools Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . app _ bar _ main .* Ċ import Ġkotlinx . android . synt hetic . main . content _ main .* Ċ import Ġorg . pro vid ent iam . je j uni is di eb us . utils . Fab Helper Ċ import Ġorg . pro vid ent iam . je j uni is di eb us . utils . Fab Helper Api 2 3 ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠNavigation View . On Navigation ItemSelected Listener Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fab . drawable Ġis ĠAnimated Vector Drawable Compat ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF ab Helper . setup Float ings Buttons ( fab , Ġ:: fab Action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF ab Helper Api 2 3 . setup Float ings Buttons ( fab , Ġ:: fab Action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF ab Helper . setup Float ings Buttons ( fab , Ġ:: fab Action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsetup Navigation () ĊĠĠĠĠĠĠĠ Ġsetup Chart () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Chart () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlabels X Ġ= ĠarrayOf (" na ", Ġ" na ", Ġ" Sun ", Ġ" Tue ", Ġ" Wed ", Ġ" Thu ", Ġ" Sun ") ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= Ġfloat ArrayOf ( 0 f , Ġ 0 f , Ġ 3 8 f , Ġ 1 7 f , Ġ 1 7 f , Ġ 2 1 f , Ġ 1 6 f ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbar Set Ġ= ĠBar Set ( labels X , Ġvalues ) ĊĠĠĠĠĠĠĠ Ġbar Set . color Ġ= ĠColor . parse Color ("# 4 8 a 9 9 9 ") ĊĠĠĠĠĠĠĠ Ġchart . addData ( bar Set ) ĊĊĠĠĠĠĠĠĠ Ġval Ġthreshold Paint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġthreshold Paint . color Ġ= ĠColor . parse Color ("# 0 0 7 9 ae ") ĊĠĠĠĠĠĠĠ Ġthreshold Paint . style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠ Ġthreshold Paint . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġthreshold Paint . stroke Width Ġ= ĠTools . from Dp To Px (. 7 5 f ) ĊĠĠĠĠĠĠĠ Ġthreshold Paint . path Effect Ġ= ĠDash Path Effect ( float ArrayOf ( 1 0 f , Ġ 1 0 f ), Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġchart . setLabel Threshold ( Ġ 2 , Ġ 2 , Ġthreshold Paint ) ĊĠĠĠĠĠĠĠ Ġchart . setValue Threshold ( Ġ 3 6 f , Ġ 3 6 f , Ġthreshold Paint ) ĊĊĠĠĠĠĠĠĠ Ġval Ġorder Ġ= Ġint ArrayOf ( 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 6 , Ġ 0 , Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġchart One Action Ġ= ĠRunnable ( this :: show Tooltip ) ĊĊĠĠĠĠĠĠĠ Ġchart . set X Labels ( Axis Renderer . Label Position . OUT SIDE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Y Labels ( Axis Renderer . Label Position . OUT SIDE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Step ( 1 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( Animation (). in Sequence (. 5 f , Ġorder ). with End Action ( chart One Action )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Tooltip () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTooltip ĊĠĠĠĠĠĠĠ Ġval Ġtip Ġ= ĠTooltip ( this , ĠR . layout . square _ tooltip ) ĊĊĠĠĠĠĠĠĠ Ġtip . set Enter Animation ( Property Values Holder . of Float ( View . ALPHA , Ġ 1 f ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty Values Holder . of Float ( View . SCALE _ X , Ġ 1 f ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty Values Holder . of Float ( View . SCALE _ Y , Ġ 1 f )). duration Ġ= Ġ 2 0 0 ĊĊĠĠĠĠĠĠĠ Ġtip . set Exit Animation ( Property Values Holder . of Float ( View . ALPHA , Ġ 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty Values Holder . of Float ( View . SCALE _ X , Ġ 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty Values Holder . of Float ( View . SCALE _ Y , Ġ 0 f )). duration Ġ= Ġ 2 0 0 ĊĊĠĠĠĠĠĠĠ Ġtip . set Vertical Alignment ( Tooltip . Alignment . TOP _ TOP ) ĊĠĠĠĠĠĠĠ Ġtip . set Dimensions ( Tools . from Dp To Px ( 1 8 f ). toInt (), ĠTools . from Dp To Px ( 1 8 f ). toInt ()) ĊĠĠĠĠĠĠĠ Ġtip . set Margins ( 0 , ĠTools . from Dp To Px ( 5 f ). toInt (), Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġtip . prepare ( chart . get Entries Area ( 0 )[ 2 ], Ġ 0 f ) ĊĊĠĠĠĠĠĠĠ Ġchart . show Tooltip ( tip , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Navigation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Ġ= ĠAction Bar Drawer Toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġdrawer _ layout , Ġtoolbar , ĠR . string . navigation _ drawer _ open , ĠR . string . navigation _ drawer _ close ) ĊĠĠĠĠĠĠĠ Ġdrawer _ layout . add Drawer Listener ( toggle ) ĊĠĠĠĠĠĠĠ Ġtoggle . sync State () ĊĊĠĠĠĠĠĠĠ Ġnav _ view . set Navigation ItemSelected Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfab Action () Ġ{ ĊĠĠĠĠĠĠĠ Ġfab _ menu . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġfab . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( drawer _ layout . is Drawer Open ( Gravity Compat . START )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer _ layout . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġmenu ; Ġthis Ġadds Ġitems Ġto Ġthe Ġaction Ġbar Ġif Ġit Ġis Ġpresent . ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġaction Ġbar Ġitem Ġclicks Ġhere . ĠThe Ġaction Ġbar Ġwill ĊĠĠĠĠĠĠĠ Ġ// Ġautomatically Ġhandle Ġclicks Ġon Ġthe ĠHome / Up Ġbutton , Ġso Ġlong ĊĠĠĠĠĠĠĠ Ġ// Ġas Ġyou Ġspecify Ġa Ġparent Ġactivity Ġin ĠAndroid Manifest . xml . ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ settings Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠSettings Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Navigation ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġnavigation Ġview Ġitem Ġclicks Ġhere . ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ status Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠHandle Ġthe Ġstatus Ġaction ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ plan Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ log book Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ chart Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ share Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ settings Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdrawer _ layout . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ