package Ġcom . col lege . col lege connect . timetable Ċ Ċ import Ġandroid . app . Time Picker Dialog Ċ import Ġandroid . os . AsyncTask Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroid . widget . Spinner Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . col lege . col lege connect . R Ċ import Ġcom . col lege . col lege connect . adapters . Sections Pager Adapter Ċ import Ġcom . col lege . col lege connect . database . Attendance Database Ċ import Ġcom . col lege . col lege connect . database . Monday Entity Ċ import Ġcom . col lege . col lege connect . database . Time Table D atab se Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ import Ġkotlinx . android . synt hetic . main . activity _ new _ time _ table .* Ċ import Ġjava . util .* Ċ Ċ class ĠNew Time Table Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ new _ time _ table ) ĊĊĠĠĠĠĠĠĠ Ġ// Setup Ġview pager Ġand Ġtab layout ĊĠĠĠĠĠĠĠ Ġval Ġsections Pager Adapter Ġ= ĠSe ctions Pager Adapter ( this , Ġsupport FragmentManager ) ĊĠĠĠĠĠĠĠ Ġval Ġview Pager Ġ= ĠfindViewById < ViewPager >( R . id . view _ pager ) ĊĠĠĠĠĠĠĠ Ġview Pager . adapter Ġ= Ġsections Pager Adapter ĊĠĠĠĠĠĠĠ Ġval Ġtabs Ġ= ĠfindViewById < Tab Layout >( R . id . tabs ) ĊĠĠĠĠĠĠĠ Ġtabs . setup With ViewPager ( view Pager ) ĊĊĠĠĠĠĠĠĠ Ġtime _ table _ fab . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd _ class () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd _ class () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar ĠstartTime : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar ĠendTime : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= Ġ( this Ġas ĠAppCompatActivity ). layout Inflater ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . add _ class _ layout , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġspinner Ġ= Ġview . findViewById < Spinner >( R . id . spinner 2 ) ĊĠĠĠĠĠĠĠ Ġvar Ġadapter : ĠArray Adapter < String > ĊĠĠĠĠĠĠĠ ĠAtt endance Database ( this ). get Attendance Dao (). get Subject s (). observe ( this , Ġandroidx . lifecycle . Observer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠArray Adapter < String >( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . layout . simple _ spinner _ item , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspinner . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġview . findViewById < TextView >( R . id . start _ time ) ĊĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġview . findViewById < TextView >( R . id . end _ time ) ĊĊĠĠĠĠĠĠĠ Ġstart . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm currentTime Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhour Ġ= Ġm currentTime [ Calendar . HOUR _ OF _ DAY ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġminute Ġ= Ġm currentTime [ Calendar . MINUTE ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Time Picker : ĠTime Picker Dialog ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Time Picker Ġ= ĠTime Picker Dialog ( this , Ġ{ Ġtime Picker , Ġselected Hour , Ġselected Minute Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . text Ġ= Ġ"$ selected Hour :$ selected Minute " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartTime Ġ= Ġ"$ selected Hour :$ selected Minute " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġhour , Ġminute , Ġtrue ) Ġ// Yes Ġ 2 4 Ġhour Ġtime ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Time Picker . show () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġend . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm currentTime Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhour Ġ= Ġm currentTime [ Calendar . HOUR _ OF _ DAY ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġminute Ġ= Ġm currentTime [ Calendar . MINUTE ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Time Picker : ĠTime Picker Dialog ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Time Picker Ġ= ĠTime Picker Dialog ( this , Ġ{ Ġtime Picker , Ġselected Hour , Ġselected Minute Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend . text Ġ= Ġ"$ selected Hour :$ selected Minute " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠendTime Ġ= Ġ"$ selected Hour :$ selected Minute " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġhour , Ġminute , Ġtrue ) Ġ// Yes Ġ 2 4 Ġhour Ġtime ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Time Picker . show () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbuilder . set Positive Button (" Done ") Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Class ( Monday Entity ( spinner . selected Item . toString (), ĠstartTime . toString (), ĠendTime . toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ"$ startTime Ġ: Ġ$ endTime ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbuilder . set Negative Button (" Cancel ") Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbuilder . setView ( view ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= Ġbuilder . create () ĊĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Class ( entity : ĠMonday Entity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclass ĠSave Class Ġ: ĠAsync Task < Void , ĠVoid , ĠVoid >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo In Background ( var arg Ġp 0 : ĠVoid ?): ĠVoid ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTime Table D atab se ( application Context ). get Monday Dao (). add ( entity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Post Execute ( result : ĠVoid ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Post Execute ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , Ġ" Class Ġadded ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠSave Class (). execute () ĊĠĠĠ Ġ} Ċ }