package Ġprojects . k yle . led controller . Main Content Ċ Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . FragmentManager Ċ import Ġandroid . support . v 4 . app . Fragment Transaction Ċ import Ġandroid . support . v 7 . app . AlertDialog Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . support . v 7 . widget . Toolbar Ċ Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ Ċ import Ġprojects . k yle . led controller . Color Picker . Color Picker Fragment Ċ import Ġprojects . k yle . led controller . Kotlin . Led Data ViewModel Ċ import Ġprojects . k yle . led controller . R ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠMainActivity Listener Ġ{ ĊĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfragment Manager : ĠFragment Manager ĊĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġval Ġtoolbar Ġ= ĠfindViewById < View >( R . id . toolbar ) Ġas ĠToolbar ĊĠĠĠĠĠĠĠ Ġfragment Manager Ġ= Ġsupport FragmentManager ĊĠĠĠĠĠĠĠ Ġval Ġdata Holder Ġ= ĠViewModel Providers . of ( this ). get ( Led Data ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġft Ġ= Ġfragment Manager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Content Fragment Ġ= ĠMain Content Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġft . add ( R . id . main _ fragment _ container , Ġmain Content Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġft . commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ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 . 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 . ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġitem . itemId ĊĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( id Ġ== ĠR . id . action _ settings ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġsuper . on Options ItemSelected ( item ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlaunch Color Picker () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġft Ġ= Ġfragment Manager . beginTransaction () ĊĠĠĠĠĠĠĠ Ġft . set Custom Animations ( R . anim . enter _ from _ right , ĠR . anim . exit _ to _ left , ĠR . anim . enter _ from _ left , ĠR . anim . exit _ to _ right ) ĊĠĠĠĠĠĠĠ Ġval Ġcolor Picker Fragment Ġ= ĠColor Picker Fragment () ĊĠĠĠĠĠĠĠ Ġft . replace ( R . id . main _ fragment _ container , Ġcolor Picker Fragment , Ġ" COLOR _ P ICK ER ") ĊĠĠĠĠĠĠĠ Ġft . addTo Back Stack (" COLOR _ P ICK ER ") ĊĠĠĠĠĠĠĠ Ġft . commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlaunch Mode Picker () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( support FragmentManager . back Stack Entry Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle (" Exit ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage (" Are Ġyou Ġsure Ġyou Ġwish Ġto Ġexit ?") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setIcon ( android . R . drawable . ic _ lock _ power _ off ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( android . R . string . yes ) Ġ{ Ġdialog , Ġwhich Ġ-> Ġsuper @ MainActivity . on Back Pressed () Ġ}. set Negative Button ( android . R . string . no , Ġnull ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ ĠViewModel Providers . of ( this ). get ( Led Data ViewModel :: class . java ). save Preferences ( application Context ) ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} Ċ Ċ } Ċ