package Ġcom . example . study . ui Ċ Ċ import Ġandroid . app . DatePicker Dialog Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . CheckBox Ċ import Ġandroid . widget . DatePicker Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . example . study . R Ċ import Ġcom . example . study . models . Task Model Ċ import Ġcom . example . study . ui . view model . Register ViewModel Ċ import Ġcom . google . android . material . text field . TextInput EditText Ċ import Ġjava . util .* Ċ Ċ class ĠRegister Task Activity Ġ: ĠAppCompatActivity (), ĠDate Picker Dialog . On Date Set Listener Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġm Due Date : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġdue Date Selector : ĠButton ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ register _ task ) ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠfindViewById < TextInput EditText >( R . id . edit _ title ) ĊĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= ĠfindViewById < TextInput EditText >( R . id . edit _ description ) ĊĠĠĠĠĠĠĠ Ġval Ġtopic Ġ= ĠfindViewById < TextInput EditText >( R . id . edit _ topic ) ĊĠĠĠĠĠĠĠ Ġthis . due Date Selector Ġ= ĠfindViewById ( R . id . show _ date _ picker ) ĊĠĠĠĠĠĠĠ Ġval Ġbutton Create Ġ= ĠfindViewById < Button >( R . id . button _ create ) ĊĠĠĠĠĠĠĠ Ġval Ġis Completed Ġ= ĠfindViewById < CheckBox >( R . id . check _ is _ complete ) ĊĊĠĠĠĠĠĠĠ Ġthis . m Due Date Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġm ViewModel Ġ= ĠRegister ViewModel ( this ) ĊĊĠĠĠĠĠĠĠ Ġdue Date Selector . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . show DatePicker () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġbutton Create . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( title . text . toString (). isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġdescription . text . toString (). isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġtopic . text . toString (). isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġthis . m Due Date . isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠR . string . empty _ fields , Toast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Model ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġdescription . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtopic Ġ= Ġtopic . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdue Date Ġ= Ġthis . m Due Date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Completed Ġ= Ġis Completed . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . insert ( task ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠR . string . insert _ message , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow DatePicker () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġyear Ġ= Ġcalendar . get ( Calendar . YEAR ) ĊĠĠĠĠĠĠĠ Ġval Ġmonth Ġ= Ġcalendar . get ( Calendar . MONTH ) ĊĠĠĠĠĠĠĠ Ġval Ġday Ġ= Ġcalendar . get ( Calendar . DAY _ OF _ MONTH ) ĊĊĠĠĠĠĠĠĠ ĠDate Picker Dialog ( this , Ġthis , Ġyear , Ġmonth , Ġday ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Date Set ( p 0 : ĠDate Picker ?, Ġyear : ĠInt , Ġmonth : ĠInt , Ġday : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( month Ġ+ Ġ 1 Ġ< Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . m Due Date Ġ= ĠString . format ("% d / 0 % d /% d ", Ġday , Ġmonth Ġ+ Ġ 1 , Ġyear ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . m Due Date Ġ= ĠString . format ("% d /% d /% d ", Ġday , Ġmonth Ġ+ Ġ 1 , Ġyear ) ĊĠĠĠĠĠĠĠ Ġthis . due Date Selector . text Ġ= Ġthis . m Due Date ĊĊĠĠĠ Ġ} Ċ Ċ }