package Ġcom . coin ninja . coin keeper . ui . market Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġcom . coin ninja . coin keeper . R Ċ import Ġcom . coin ninja . coin keeper . viewModel . Market Data ViewModel Ċ Ċ class ĠMarket Chart Button Bar Controller Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcurrent Gran ularity : ĠGr an ularity Ġ= ĠGr an ularity . DAY ĊĊĠĠĠ Ġfun Ġsetup Button Bar ( current Gran ularity : ĠGr an ularity , Ġbutton Bar : ĠViewGroup ?, Ġmarket Data ViewModel : ĠMarket Data ViewModel ) Ġ= Ġbutton Bar ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . current Gran ularity Ġ= Ġcurrent Gran ularity ĊĠĠĠĠĠĠĠ Ġit . findViewById < Button >( R . id . gran ularity _ day )?. setOnClickListener Ġ{ Ġmarket Data ViewModel . load Gran ularity ( Gran ularity . DAY ) Ġ} ĊĠĠĠĠĠĠĠ Ġit . findViewById < Button >( R . id . gran ularity _ week )?. setOnClickListener Ġ{ Ġmarket Data ViewModel . load Gran ularity ( Gran ularity . WEEK ) Ġ} ĊĠĠĠĠĠĠĠ Ġit . findViewById < Button >( R . id . gran ularity _ month )?. setOnClickListener Ġ{ Ġmarket Data ViewModel . load Gran ularity ( Gran ularity . MONTH ) Ġ} ĊĠĠĠĠĠĠĠ Ġit . findViewById < Button >( R . id . gran ularity _ year )?. setOnClickListener Ġ{ Ġmarket Data ViewModel . load Gran ularity ( Gran ularity . YEAR ) Ġ} ĊĠĠĠĠĠĠĠ Ġit . findViewById < Button >( R . id . gran ularity _ all )?. setOnClickListener Ġ{ Ġmarket Data ViewModel . load Gran ularity ( Gran ularity . ALL ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Gran ularity Changed ( new Gran ularity : ĠGr an ularity , Ġbutton Bar : ĠViewGroup ?) Ġ= Ġbutton Bar ?. let Ġ{ Ġbar Ġ-> ĊĠĠĠĠĠĠĠ Ġclear Selection ( current Gran ularity , Ġbar ) ĊĠĠĠĠĠĠĠ Ġupdate Gran ularity ( new Gran ularity , Ġbar ) ĊĠĠĠĠĠĠĠ Ġcurrent Gran ularity Ġ= Ġnew Gran ularity ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġupdate Gran ularity ( gran ularity : ĠGr an ularity , Ġbutton Bar : ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( gran ularity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr an ularity . DAY Ġ-> Ġselect ( button Bar . findViewById ( R . id . gran ularity _ day )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr an ularity . WEEK Ġ-> Ġselect ( button Bar . findViewById ( R . id . gran ularity _ week )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr an ularity . MONTH Ġ-> Ġselect ( button Bar . findViewById ( R . id . gran ularity _ month )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr an ularity . YEAR Ġ-> Ġselect ( button Bar . findViewById ( R . id . gran ularity _ year )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr an ularity . ALL Ġ-> Ġselect ( button Bar . findViewById ( R . id . gran ularity _ all )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear Selection ( gran ularity : ĠGr an ularity , Ġbutton Bar : ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( gran ularity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr an ularity . DAY Ġ-> Ġreset ( button Bar . findViewById ( R . id . gran ularity _ day )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr an ularity . WEEK Ġ-> Ġreset ( button Bar . findViewById ( R . id . gran ularity _ week )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr an ularity . MONTH Ġ-> Ġreset ( button Bar . findViewById ( R . id . gran ularity _ month )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr an ularity . YEAR Ġ-> Ġreset ( button Bar . findViewById ( R . id . gran ularity _ year )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr an ularity . ALL Ġ-> Ġreset ( button Bar . findViewById ( R . id . gran ularity _ all )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreset ( button : ĠButton ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Background Resource ( R . drawable . button _ market _ gran ularity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextAppearance ( context , ĠR . style . TextAppearance _ Market Gran ularity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextAppearance ( R . style . TextAppearance _ Market Gran ularity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġselect ( button : ĠButton ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbackground Ġ= Ġthis . context . resources . get Drawable ( R . drawable . button _ market _ gran ularity _ pressed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( resources . getColor ( R . color . font _ white )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ