package Ġcom . example . osen . activity Ċ Ċ import Ġandroid . app . DatePicker Dialog Ċ import Ġandroid . app . Time Picker Dialog Ċ import Ġandroid . database . sqlite . SQLite Constraint Exception Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . AsyncTask Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . View Ċ import Ġandroid . widget .* Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcn . ped ant . S weet Alert . S weet AlertDialog Ċ import Ġcom . example . osen . R Ċ import Ġcom . example . osen . database . database Ċ import Ġcom . example . osen . interfaces . My Async Callback Ċ import Ġcom . example . osen . model . Category Ċ import Ġcom . example . osen . model . Class room Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġkotlinx . android . synt hetic . main . activity _ add _ class room .* Ċ import Ġorg . jetbrains . ank o . db . class Parser Ċ import Ġorg . jetbrains . ank o . db . insert Ċ import Ġorg . jetbrains . ank o . db . select Ċ import Ġjava . lang . ref . Weak Reference Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ class ĠAdd Class room Ġ: ĠAppCompatActivity (), ĠMy Async Callback Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar ĠclassName : ĠEditText ĊĠĠĠ Ġlateinit Ġvar Ġclass Type : ĠSp inner ĊĠĠĠ Ġlateinit Ġvar Ġclass Category : ĠSp inner ĊĠĠĠ Ġlateinit Ġvar Ġnew Category : ĠEditText ĊĠĠĠ Ġlateinit Ġvar Ġclass Start : ĠButton ĊĠĠĠ Ġlateinit Ġvar Ġclass End : ĠButton ĊĠĠĠ Ġlateinit Ġvar Ġtime Start : ĠButton ĊĠĠĠ Ġlateinit Ġvar Ġtime End : ĠButton ĊĠĠĠ Ġlateinit Ġvar Ġfirst Day : ĠSp inner ĊĠĠĠ Ġlateinit Ġvar Ġsecond Day : ĠSp inner ĊĠĠĠ Ġlateinit Ġvar Ġthird Day : ĠSp inner ĊĠĠĠ Ġlateinit Ġvar Ġfourth Day : ĠSp inner ĊĠĠĠ Ġlateinit Ġvar Ġf ifth Day : ĠSp inner ĊĠĠĠ Ġlateinit Ġvar Ġsix th Day : ĠSp inner ĊĊĠĠĠ Ġvar Ġcount Ġ= Ġ 1 ĊĊĠĠĠ Ġprivate Ġvar Ġlist Category : ĠMutable List < Category > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġprivate Ġvar Ġcheck Category : ĠMutable List < Category > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġlateinit Ġvar Ġauth : ĠFirebase Auth ĊĊĠĠĠ Ġvar Ġclass Exist Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ add _ class room ) ĊĊĠĠĠĠĠĠĠ Ġauth Ġ= ĠFirebase Auth . getInstance () ĊĊĠĠĠĠĠĠĠ Ġinit UI () ĊĊĠĠĠĠĠĠĠ ĠArray Adapter . createFrom Resource ( this , ĠR . array . class _ type , ĠR . layout . spinner _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġadapter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass Type . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġshow Category Spinner () ĊĊĠĠĠĠĠĠĠ ĠArray Adapter . createFrom Resource ( this , ĠR . array . day _ name , ĠR . layout . spinner _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġadapter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Day . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġyear Ġ= Ġcalendar . get ( Calendar . YEAR ) ĊĠĠĠĠĠĠĠ Ġval Ġmonth Ġ= Ġcalendar . get ( Calendar . MONTH ) ĊĠĠĠĠĠĠĠ Ġval Ġday Ġ= Ġcalendar . get ( Calendar . DAY _ OF _ MONTH ) ĊĠĠĠĠĠĠĠ Ġval Ġhour Ġ= Ġcalendar . get ( Calendar . HOUR _ OF _ DAY ) ĊĠĠĠĠĠĠĠ Ġval Ġminute Ġ= Ġcalendar . get ( Calendar . MINUTE ) ĊĊĠĠĠĠĠĠĠ Ġclass Start . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Date Start ( year , Ġmonth , Ġday ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclass End . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Date End ( year , Ġmonth , Ġday ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtime Start . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Time Start ( hour , Ġminute ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtime End . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Time End ( hour , Ġminute ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclear . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsubmit . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadd Day . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Day () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit UI () Ġ{ ĊĠĠĠĠĠĠĠ ĠclassName Ġ= ĠfindViewById ( R . id . className ) ĊĠĠĠĠĠĠĠ Ġclass Type Ġ= ĠfindViewById ( R . id . class Type ) ĊĠĠĠĠĠĠĠ Ġclass Category Ġ= ĠfindViewById ( R . id . class Category ) ĊĠĠĠĠĠĠĠ Ġnew Category Ġ= ĠfindViewById ( R . id . new Category ) ĊĠĠĠĠĠĠĠ Ġclass Start Ġ= ĠfindViewById ( R . id . class Start ) ĊĠĠĠĠĠĠĠ Ġclass End Ġ= ĠfindViewById ( R . id . class End ) ĊĠĠĠĠĠĠĠ Ġtime Start Ġ= ĠfindViewById ( R . id . time Start ) ĊĠĠĠĠĠĠĠ Ġtime End Ġ= ĠfindViewById ( R . id . time End ) ĊĠĠĠĠĠĠĠ Ġfirst Day Ġ= ĠfindViewById ( R . id . first Day ) ĊĠĠĠĠĠĠĠ Ġsecond Day Ġ= ĠfindViewById ( R . id . second Day ) ĊĠĠĠĠĠĠĠ Ġthird Day Ġ= ĠfindViewById ( R . id . third Day ) ĊĠĠĠĠĠĠĠ Ġfourth Day Ġ= ĠfindViewById ( R . id . four th Day ) ĊĠĠĠĠĠĠĠ Ġf ifth Day Ġ= ĠfindViewById ( R . id . f ifth Day ) ĊĠĠĠĠĠĠĠ Ġsix th Day Ġ= ĠfindViewById ( R . id . six th Day ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Date Start ( year : ĠInt , Ġmonth : ĠInt , Ġday : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate Picker Dialog Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDate Picker Dialog ( this , ĠDate Picker Dialog . On Date Set Listener Ġ{ Ġview , Ġm Year , Ġm Month , Ġm Day Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Day Ġ= Ġif Ġ( m Day Ġ< Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 $ m Day " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Day . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Month Ġ= Ġif Ġ(( m Month Ġ+ Ġ 1 ) Ġ< Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 " Ġ+ Ġ( m Month Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Month Ġ+ Ġ 1 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ"$ format Day /$ format Month /$ m Year " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass Start . text Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġyear , Ġmonth , Ġday ) ĊĊĠĠĠĠĠĠĠ Ġdate Picker Dialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Date End ( year : ĠInt , Ġmonth : ĠInt , Ġday : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate Picker Dialog Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDate Picker Dialog ( this , ĠDate Picker Dialog . On Date Set Listener Ġ{ Ġview , Ġm Year , Ġm Month , Ġm Day Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Day Ġ= Ġif Ġ( m Day Ġ< Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 $ m Day " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Day . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Month Ġ= Ġif Ġ(( m Month Ġ+ Ġ 1 ) Ġ< Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 " Ġ+ Ġ( m Month Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Month Ġ+ Ġ 1 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ"$ format Day /$ format Month /$ m Year " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass End . text Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġyear , Ġmonth , Ġday ) ĊĊĠĠĠĠĠĠĠ Ġdate Picker Dialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Time Start ( hour : ĠInt , Ġminute : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtime Picker Dialog Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTime Picker Dialog ( this , ĠTime Picker Dialog . On Time Set Listener Ġ{ Ġview , Ġhour OfDay , Ġminutes Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Hours : ĠString Ġ= Ġif Ġ( hour OfDay Ġ< Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 $ hour OfDay " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhour OfDay . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Minutes : ĠString Ġ= Ġif Ġ( minutes Ġ< Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 $ minutes " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminutes . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ"$ format Hours Ġ: Ġ$ format Minutes " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Start . text Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġhour , Ġminute , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġtime Picker Dialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Time End ( hour : ĠInt , Ġminute : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtime Picker Dialog Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTime Picker Dialog ( this , ĠTime Picker Dialog . On Time Set Listener Ġ{ Ġview , Ġhour OfDay , Ġminutes Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Hours : ĠString Ġ= Ġif Ġ( hour OfDay Ġ< Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 $ hour OfDay " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhour OfDay . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Minutes : ĠString Ġ= Ġif Ġ( minutes Ġ< Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 $ minutes " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminutes . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ"$ format Hours Ġ: Ġ$ format Minutes " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime End . text Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġhour , Ġminute , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġtime Picker Dialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Day () Ġ{ ĊĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Day 2 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArray Adapter . createFrom Resource ( this , ĠR . array . day _ name , ĠR . layout . spinner _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġadapter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecond Day . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Day 3 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArray Adapter . createFrom Resource ( this , ĠR . array . day _ name , ĠR . layout . spinner _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġadapter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthird Day . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Day 4 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArray Adapter . createFrom Resource ( this , ĠR . array . day _ name , ĠR . layout . spinner _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġadapter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfourth Day . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Day 5 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArray Adapter . createFrom Resource ( this , ĠR . array . day _ name , ĠR . layout . spinner _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġadapter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ifth Day . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 6 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Day 6 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArray Adapter . createFrom Resource ( this , ĠR . array . day _ name , ĠR . layout . spinner _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġadapter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsix th Day . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġ 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Day . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Category Spinner () ĊĠĠĠĠĠĠĠ ĠclassName . setText ("") ĊĠĠĠĠĠĠĠ Ġclass Type . setSelection ( 0 ) ĊĠĠĠĠĠĠĠ Ġclass Start . text Ġ= Ġ" P ilih " ĊĠĠĠĠĠĠĠ Ġclass End . text Ġ= Ġ" P ilih " ĊĠĠĠĠĠĠĠ Ġtime Start . text Ġ= Ġ" P ilih " ĊĠĠĠĠĠĠĠ Ġtime End . text Ġ= Ġ" P ilih " ĊĠĠĠĠĠĠĠ Ġfirst Day . setSelection ( 0 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( list Category . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow First Category . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Old Category . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass Category . setSelection ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrow New Category . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġrow Day 2 . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġsecond Day . setSelection ( 0 ) ĊĠĠĠĠĠĠĠ Ġrow Day 3 . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġthird Day . setSelection ( 0 ) ĊĠĠĠĠĠĠĠ Ġrow Day 4 . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġfourth Day . setSelection ( 0 ) ĊĠĠĠĠĠĠĠ Ġrow Day 5 . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġf ifth Day . setSelection ( 0 ) ĊĠĠĠĠĠĠĠ Ġrow Day 6 . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġadd Day . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġsix th Day . setSelection ( 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsubmit () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdateFormat Ġ= ĠSimpleDateFormat (" dd / MM / yyyy ", ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Date Ġ= ĠdateFormat . format ( Date ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġcount Words Ġ= ĠclassName . text . toString (). split ("") ĊĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( className . text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( count Words . size Ġ> Ġ 1 7 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠclassName . error Ġ= Ġ" J ud ul ĠTer di ri ĠD ari Ġ 1 - 1 5 ĠH ur uf " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠclassName . error Ġ= Ġ" Nama ĠKel as ĠT id ak ĠB ole h ĠK os ong " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( row First Category . visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( first Category Add . text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Category Add . error Ġ= Ġ" K ategori ĠT id ak ĠB ole h ĠK os ong " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( row New Category . visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( new Category . text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Category . error Ġ= Ġ" K ategori ĠT id ak ĠB ole h ĠK os ong " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( class Start . text . toString () Ġ== Ġ" P ilih ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠS weet AlertDialog ( this , ĠS weet AlertDialog . WARNING _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . title Text Ġ= Ġ" Sil ah kan ĠT ent ukan ĠT ang gal ĠMul ai ĠKel as " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( class End . text . toString () Ġ== Ġ" P ilih ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠS weet AlertDialog ( this , ĠS weet AlertDialog . WARNING _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . title Text Ġ= Ġ" Sil ah kan ĠT ent ukan ĠT ang gal ĠSe les ai ĠKel as " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( class Start . text . toString () Ġ< Ġcurrent Date ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠS weet AlertDialog ( this , ĠS weet AlertDialog . WARNING _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . title Text Ġ= Ġ" Tang gal ĠMul ai ĠKel as ĠHar us ĠDim ul ai ĠD ari ĠH ari ĠIn i Ġata u ĠSet el ah nya " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( class End . text . toString () Ġ< Ġclass Start . text . toString ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠS weet AlertDialog ( this , ĠS weet AlertDialog . WARNING _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . title Text Ġ= Ġ" Tang gal ĠSe les ai ĠKel as ĠT id ak ĠB ole h ĠSeb el um ĠT ang gal ĠMul ai ĠKel as " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( time Start . text . toString () Ġ== Ġ" P ilih ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠS weet AlertDialog ( this , ĠS weet AlertDialog . WARNING _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . title Text Ġ= Ġ" Sil ah kan ĠT ent ukan ĠJ ad wal ĠMul ai ĠKel as " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( time End . text . toString () Ġ== Ġ" P ilih ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠS weet AlertDialog ( this , ĠS weet AlertDialog . WARNING _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . title Text Ġ= Ġ" Sil ah kan ĠT ent ukan ĠJ ad wal ĠSe les ai ĠKel as " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( time End . text . toString () Ġ< Ġtime Start . text . toString ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠS weet AlertDialog ( this , ĠS weet AlertDialog . WARNING _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . title Text Ġ= Ġ" J ad wal ĠSe les ai ĠKel as ĠHar us ĠSet el ah ĠJ ad wal ĠMul ai ĠKel as " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcheck Class ( className . text . toString ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( class Exist ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠS weet AlertDialog ( this , ĠS weet AlertDialog . WARNING _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . progress Helper . bar Color Ġ= ĠColor . parse Color ("# A 5 DC 8 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . title Text Ġ= Ġ" Nama ĠKel as ĠS udah ĠT erp ak ai " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . set Cancel able ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( row New Category . visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Available Category ( new Category . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( check Category . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Category () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( row First Category . visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Category () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdemo Async Ġ= ĠDemo Async ( this ) ĊĠĠĠĠĠĠĠ Ġdemo Async . execute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Category Spinner () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Category () ĊĠĠĠĠĠĠĠ Ġif Ġ( list Category . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Old Category . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow First Category . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcategories : ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlist Category . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategories . add ( list Category [ i ]. name . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategories . add (" Tid ak Ġada Ġp ili han ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠArray Adapter < String >( this , ĠR . layout . spinner _ item , Ġcategories ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass Category . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass Category . on ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent : ĠAdapter View < *> ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview : ĠView ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid : ĠLong ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( class Category . selected Item . toString () Ġ== Ġ" Tid ak Ġada Ġp ili han ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow New Category . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow New Category . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( parent : ĠAdapter View < *> ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġadd Class room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= ĠclassName . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġclass Type . selected Item . toString () ĊĠĠĠĠĠĠĠ Ġvar Ġcategory Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( row Old Category . visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( class Category . selected Item . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. equals (" Tid ak Ġada Ġp ili han ", Ġignore Case Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= Ġnew Category . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= Ġclass Category . selected Item . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= Ġfirst Category Add . text . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠstartDate Ġ= Ġclass Start . text . toString () ĊĠĠĠĠĠĠĠ Ġval ĠendDate Ġ= Ġclass End . text . toString () ĊĠĠĠĠĠĠĠ Ġval ĠstartTime Ġ= Ġtime Start . text . toString () ĊĠĠĠĠĠĠĠ Ġval ĠendTime Ġ= Ġtime End . text . toString () ĊĠĠĠĠĠĠĠ Ġvar Ġday Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġwhen Ġ( count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday Ġ= Ġ"" Ġ+ Ġfirst Day . selected Item . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" Ġ+ Ġfirst Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġsecond Day . selected Item . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" Ġ+ Ġfirst Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġsecond Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġthird Day . selected Item . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" Ġ+ Ġfirst Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġsecond Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġthird Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġfourth Day . selected Item . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" Ġ+ Ġfirst Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġsecond Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġthird Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġfourth Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġf ifth Day . selected Item . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ 6 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" Ġ+ Ġfirst Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġsecond Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġthird Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġfourth Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġf ifth Day . selected Item . toString () Ġ+ Ġ", Ġ" Ġ+ Ġsix th Day . selected Item . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġimage Ġ= ĠR . drawable . ic _ class ĊĠĠĠĠĠĠĠ Ġwhen Ġ( category ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ba has a ĠInd onesia " Ġ-> Ġimage Ġ= ĠR . drawable . ic _ ind onesia ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ba has a ĠIng gr is " Ġ-> Ġimage Ġ= ĠR . drawable . ic _ english ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" IP A " Ġ-> Ġimage Ġ= ĠR . drawable . ic _ science ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" M ate mat ika " Ġ-> Ġimage Ġ= ĠR . drawable . ic _ math ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Pem rogram an " Ġ-> Ġimage Ġ= ĠR . drawable . ic _ programming ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdatabase . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinsert ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass room . TABLE _ CLASS ROOM , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass room . NAME Ġto Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass room . IMAGE Ġto Ġimage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass room . START _ DATE Ġto ĠstartDate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass room . END _ DATE Ġto ĠendDate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass room . START _ TIME Ġto ĠstartTime , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass room . END _ TIME Ġto ĠendTime , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass room . DAY Ġto Ġday , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass room . TYPE Ġto Ġtype , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass room . CATEGORY Ġto Ġcategory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass room . TE AC HER _ ID Ġto Ġauth . currentUser ?. uid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSQLite Constraint Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Category () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcategory Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( row New Category . visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= Ġnew Category . text . toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= Ġfirst Category Add . text . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinsert ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCategory . TABLE _ CATEGORY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCategory . NAME Ġto Ġcategory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCategory . TE AC HER _ ID Ġto Ġauth . currentUser ?. uid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSQLite Constraint Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Category () Ġ{ ĊĠĠĠĠĠĠĠ Ġlist Category . clear () ĊĠĠĠĠĠĠĠ Ġdatabase . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġselect ( Category . TABLE _ CATEGORY ). where Args ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( TE AC HER _ ID Ġ= Ġ{ teacher _ id })", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" teacher _ id " Ġto Ġauth . currentUser ?. uid . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcategory Ġ= Ġresult . parse List ( class Parser < Category >()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( category . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Category . addAll ( category ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Available Category ( category Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Category . clear () ĊĠĠĠĠĠĠĠ Ġdatabase . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġselect ( Category . TABLE _ CATEGORY ). where Args ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( TE AC HER _ ID Ġ= Ġ{ teacher _ id }) ĠAND Ġ( NAME Ġ= Ġ{ category _ name })", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" teacher _ id " Ġto Ġauth . currentUser ?. uid . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" category _ name " Ġto Ġcategory Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcategory Ġ= Ġresult . parse List ( class Parser < Category >()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( category . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Category . addAll ( category ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Class ( class _ name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġselect ( Class room . TABLE _ CLASS ROOM ). where Args ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( NAME Ġ= Ġ{ class _ name }) ĠAND Ġ( TE AC HER _ ID Ġ= Ġ{ teacher _ id })", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" class _ name " Ġto Ġclass _ name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" teacher _ id " Ġto Ġauth . currentUser ?. uid . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġresult . parse List ( class Parser < Class room >()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass Exist Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠDemo Async ( listener : ĠMy Async Callback ) Ġ: ĠAsync Task < String , ĠUnit , ĠUnit >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmy Listener : ĠWeak Reference < My Async Callback > Ġ= ĠWeak Reference ( listener ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Pre Execute () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Pre Execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= Ġmy Listener . get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Pre Execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo In Background ( var arg Ġparams : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Class room () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Post Execute ( result : ĠUnit ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Post Execute ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= Ġmy Listener . get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Post Execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġdialog : ĠS weet AlertDialog ĊĠĠĠ Ġoverride Ġfun Ġon Pre Execute () Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog Ġ= ĠS weet AlertDialog ( this , ĠS weet AlertDialog . PROGRESS _ TYPE ) ĊĠĠĠĠĠĠĠ Ġdialog . set Cancel able ( false ) ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Post Execute () Ġ{ ĊĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠ Ġdialog . change Alert Type ( S weet AlertDialog . SUCCESS _ TYPE ) ĊĠĠĠĠĠĠĠ Ġdialog . progress Helper . bar Color Ġ= ĠColor . parse Color ("# A 5 DC 8 6 ") ĊĠĠĠĠĠĠĠ Ġdialog . title Text Ġ= Ġ" Kel as ĠBer hasil ĠDi bu at " ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠ Ġ} Ċ } Ċ