package Ġcom . example . av j inders ing h se kh on . minimal todo . AddTo Do Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Clip Data Ċ import Ġandroid . content . Clipboard Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Port er D uff Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . text . format . DateFormat Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget .* Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . app . Nav Utils Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġcom . example . av j inders ing h se kh on . minimal todo . Alarm Manager Ċ import Ġcom . example . av j inders ing h se kh on . minimal todo . Analytics . Analytics Application Ċ import Ġcom . example . av j inders ing h se kh on . minimal todo . R Ċ import Ġcom . example . av j inders ing h se kh on . minimal todo . database . ToDo Ċ import Ġcom . example . av j inders ing h se kh on . minimal todo . utility .* Ċ import Ġcom . example . av j inders ing h se kh on . minimal todo . databinding . Fragment AddTo Do Binding Ċ import Ġcom . wd ull aer . material datetime picker . date . DatePicker Dialog Ċ import Ġcom . wd ull aer . material datetime picker . time . Rad ial Picker Layout Ċ import Ġcom . wd ull aer . material datetime picker . time . Time Picker Dialog Ċ import Ġkotlinx . android . synt hetic . main . fragment _ reminder .* Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ class ĠAdd ToDo Fragment Ġ: ĠFragment (), ĠDate Picker Dialog . On Date Set Listener , ĠTime Picker Dialog . On Time Set Listener Ġ{ ĊĊĠĠĠ ĊĊĠĠĠ Ġvar Ġto Do Item Ġ: ĠTo Do ? Ġ Ġ= Ġnull ĊĠ ĊĊĠĠĠ Ġprivate Ġvar Ġm User Has Reminder Ġ= Ġfalse ĊĠĠĠ Ġvar Ġshould Update Ġ: ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġvar Ġm User Reminder Date Ġ: ĠDate ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm User Color Ġ= Ġ 0 ĊĊĊĠĠĠ Ġprivate Ġvar Ġtheme : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġlateinit Ġvar Ġapp Ġ: ĠAnalytics Application ĊĊĠĠĠ Ġlateinit Ġvar Ġbinding Ġ: ĠFragment AddTo Do Binding ĊĠĠĠ Ġprivate Ġval Ġview model Ġ: ĠAdd ToDo ViewModel Ġby Ġview Models Ġ{ ĊĠĠĠĠĠĠĠ ĠAdd ToDo ViewModel Factory (( require Activity (). application Ġas ĠAnalytics Application ). repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġapp Ġ= Ġrequire Activity (). application Ġas ĠAnalytics Application ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment AddTo Do Binding . inflate ( in flater , container , false ) ĊĊĠĠĠĠĠĠĠ Ġtheme Ġ= Ġrequire Activity (). get SharedPreferences ( THEME _ PREFER ENCES , ĠContext . MODE _ PRIVATE ). getString ( THEME _ SA VED , ĠLIGHT THEME ) ĊĠĠĠĠĠĠĠ Ġif Ġ( theme Ġ== ĠLIGHT THEME ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). set Theme ( R . style . Custom Style _ Light Theme ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" O sk ar Sch ind ler ", Ġ" Light ĠTheme ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). set Theme ( R . style . Custom Style _ Dark Theme ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ// Show Ġan ĠX Ġin Ġplace Ġof Ġ<- ĊĠĠĠĠĠĠĠ Ġval Ġcross Ġ= Ġresources . get Drawable ( R . drawable . ic _ clear _ white _ 2 4 dp ) ĊĠĠĠĠĠĠĠ Ġcross ?. setColor Filter ( resources . getColor ( R . color . icons ), ĠPort er D uff . Mode . SRC _ AT OP ) ĊĠĠĠĠĠĠĠ Ġval Ġm Toolbar Ġ= Ġbinding . toolbar ĊĠĠĠĠĠĠĠ Ġ( activity Ġas ĠAppCompatActivity ?) !!. set Support ActionBar ( m Toolbar ) ĊĠĠĠĠĠĠĠ Ġif Ġ(( activity Ġas ĠAppCompatActivity ?) !!. support ActionBar Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠAppCompatActivity ?) !!. support ActionBar !!. elevation Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠAppCompatActivity ?) !!. support ActionBar !!. set Display Show Title Enabled ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠAppCompatActivity ?) !!. support ActionBar !!. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠAppCompatActivity ?) !!. support ActionBar !!. set Home As Up Indicator ( cross ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġitem id Ġ= Ġrequire Activity (). intent . getInt Extra ( TODO ITEM ,- 1 ) Ġas ĠInt ĊĊĠĠĠĠĠĠĠ Ġif ( item id Ġ== Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Do Item Ġ= ĠTo Do () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . to Do Has Date Switch Compat . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Enter Date Layout Visible ( binding . to Do Has Date Switch Compat . isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Enter Date Layout Visible With Animations ( binding . to Do Has Date Switch Compat . isChecked ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠ Ġview model . getItem ( item id ). observe ( view Lifecycle Owner ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Do Item Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould Update Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . user ToDo EditText . setText ( to Do Item ?. to Do Title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . user ToDo Description . setText ( to Do Item ?. to Do Description ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . to Do Has Date Switch Compat . isChecked Ġ= Ġto Do Item ?. has Reminder Ġ== Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Enter Date Layout Visible ( binding . to Do Has Date Switch Compat . isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Enter Date Layout Visible With Animations ( binding . to Do Has Date Switch Compat . isChecked ) ĊĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( theme Ġ== ĠD ARK THEME ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser ToDo Reminder Icon Image Button . setImage Drawable ( resources . get Drawable ( R . drawable . ic _ alarm _ add _ white _ 2 4 dp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser ToDo Rem ind Me TextView . setTextColor ( Color . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// OnClickListener Ġfor ĠCopy Clipboard ĠButton ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopy clipboard . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġto Do Text Container Ġ= Ġuser ToDo EditText . text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġto Do Text Body Description Container Ġ= Ġuser ToDo Description . text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclipboard Ġ= Ġrequire Activity (). getSystem Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcombination Text Ġ= Ġ" Title Ġ: Ġ$ to Do Text Container \ n Description Ġ: Ġ$ to Do Text Body Description Container \ n Ġ- Copied ĠFrom ĠMin imal ToDo " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclip Ġ= ĠClip Data . new Plain Text (" text ", Ġcombination Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclipboard . primary Clip Ġ= Ġclip ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Copied ĠTo ĠClip board !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtodo Reminder And Date Container Layout . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( user ToDo EditText ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( user ToDo Description ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser ToDo EditText . request Focus () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġrequire Activity (). getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġimm . show Soft Input ( user ToDo EditText , ĠInput Method Manager . SHOW _ IMP LICIT ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimm . toggle Soft Input ( Input Method Manager . SHOW _ FOR CED , ĠInput Method Manager . HIDE _ IMP LICIT _ ONLY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser ToDo EditText . setSelection ( user ToDo EditText . length ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser ToDo EditText . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Do Item ?. to Do Title Ġ= Ġs . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser ToDo Description . setSelection ( user ToDo Description . length ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser ToDo Description . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Do Item ?. to Do Description Ġ= Ġs . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĊĊ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Do Has Date Switch Compat . setOn Checked ChangeListener ( object Ġ: ĠCompound Button . On Checked ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon CheckedChanged ( button View : ĠCompound Button , Ġis Checked : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm User Has Reminder Ġ= Ġis Checked ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp !!. send ( this , Ġ" Action ", Ġ" Reminder ĠSet ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Date And Time EditText () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm User Reminder Date Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp !!. send ( this , Ġ" Action ", Ġ" Reminder ĠRemoved ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Enter Date Layout Visible With Animations ( isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( user ToDo EditText ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( user ToDo Description ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmake ToDo Floating ActionButton . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user ToDo EditText . text . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser ToDo EditText . error Ġ= ĠgetString ( R . string . todo _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( to Do Item ?. to Do Rem ind Date Ġ!= Ġnull Ġ&& Ġto Do Item ?. to Do Rem ind Date ?. before ( Date ()) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp . send ( this , Ġ" Action ", Ġ" Date Ġin Ġthe ĠP ast ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Do Has Date Switch Compat . error Ġ= ĠgetString ( R . string . date _ error _ check _ again ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp . send ( this , Ġ" Action ", Ġ" Make ĠTodo ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( to Do Item ?. to Do Rem ind Date . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Do Item ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Do Title Ġ= Ġuser ToDo EditText . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Do Description Ġ= Ġuser ToDo Description . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Reminder Ġ= Ġm User Has Reminder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtodo Color Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview model . insert ( to Do Item !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalarm Manager Ġ= Ġcontext ?. let Ġ{ Ġit 1 Ġ-> ĠAlarm Manager ( it 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalarm Manager ?. create Alarm For Item ( to Do Item !! ) ĊĊĊ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). set Result ( Activity . RESULT _ OK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( user ToDo EditText ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( user ToDo Description ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). finish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( user ToDo EditText ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( user ToDo Description ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĊ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Todo Date EditText . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate : ĠDate ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( user ToDo EditText ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġyear Ġ= Ġcalendar [ Calendar . YEAR ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmonth Ġ= Ġcalendar [ Calendar . MONTH ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġday Ġ= Ġcalendar [ Calendar . DAY _ OF _ MONTH ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Picker Dialog Ġ= ĠDate Picker Dialog . newInstance ( this @ AddTo Do Fragment , Ġyear , Ġmonth , Ġday ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( theme Ġ== ĠD ARK THEME ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Picker Dialog . is Theme Dark Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Picker Dialog . show ( require Activity (). fragment Manager , Ġ" Date Fragment ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Todo Time EditText . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate : ĠDate ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( user ToDo EditText ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= Ġif Ġ( to Do Item ?. to Do Rem ind Date Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Do Item ?. to Do Rem ind Date ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . time Ġ= Ġdate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhour Ġ= Ġcalendar [ Calendar . HOUR _ OF _ DAY ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġminute Ġ= Ġcalendar [ Calendar . MINUTE ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Picker Dialog Ġ= ĠTime Picker Dialog . newInstance ( this @ AddTo Do Fragment , Ġhour , Ġminute , ĠDate Format . is 2 4 Hour Format ( context )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( theme Ġ== ĠD ARK THEME ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Picker Dialog . is Theme Dark Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Picker Dialog . show ( require Activity (). fragment Manager , Ġ" Time Fragment ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĊ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Date And Time EditText () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĊĊĊĊĊ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Date And Time EditText () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġthis . to Do Item ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( this Ġ!= Ġnull Ġ&& Ġthis ?. has Reminder Ġ&& Ġto Do Rem ind Date != null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Date Ġ= Ġformat Date (" d ĠM MM , Ġy yyy ", Ġto Do Rem ind Date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat ToUse : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat ToUse Ġ= Ġif Ġ( DateFormat . is 2 4 Hour Format ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" k : mm " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" h : mm Ġa " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Time Ġ= Ġformat Date ( format ToUse , Ġto Do Rem ind Date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . new Todo Time EditText . setText ( user Time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . new Todo Date EditText . setText ( user Date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . has Reminder Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . new Todo Date EditText . setText ( getString ( R . string . date _ reminder _ default )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime 2 4 Ġ= ĠDate Format . is 2 4 Hour Format ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcal Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( time 2 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcal [ Calendar . HOUR _ OF _ DAY ] Ġ= Ġcal [ Calendar . HOUR _ OF _ DAY ] Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcal [ Calendar . HOUR ] Ġ= Ġcal [ Calendar . HOUR ] Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcal [ Calendar . MINUTE ] Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis ?. to Do Rem ind Date Ġ= Ġcal . time ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" O sk ar Sch ind ler ", Ġ" Imag ined ĠDate : Ġ$ to Do Rem ind Date ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime String : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime String Ġ= Ġif Ġ( time 2 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Date (" k : mm ", Ġto Do Rem ind Date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Date (" h : mm Ġa ", Ġto Do Rem ind Date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . new Todo Time EditText !!. setText ( time String ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtheme Set : ĠString ĊĠĠĠĠĠĠĠ Ġprivate Ġget () Ġ= Ġrequire Activity (). get SharedPreferences ( THEME _ PREFER ENCES , ĠContext . MODE _ PRIVATE ). getString ( THEME _ SA VED , ĠLIGHT THEME ) ĊĊĠĠĠ Ġfun Ġhide Keyboard ( et : ĠEditText ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġrequire Activity (). getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġimm . hide Soft Input From Window ( et !!. window Token , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Date ( year : ĠInt , Ġmonth : ĠInt , Ġday : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġhour : ĠInt ĊĠĠĠĠĠĠĠ Ġval Ġminute : ĠInt ĊĊĠĠĠĠĠĠĠ Ġval Ġreminder Calendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġreminder Calendar [ year , Ġmonth ] Ġ= Ġday ĊĠĠĠĠĠĠĠ Ġif Ġ( reminder Calendar . before ( calendar )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠ ĠToast . makeText ( this , Ġ" My Ġtime - machine Ġis Ġa Ġbit Ġrust y ", ĠToast . LENGTH _ SHORT ). show (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( to Do Item ?. to Do Rem ind Date Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . time Ġ= Ġm User Reminder Date ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġhour Ġ= Ġif Ġ( DateFormat . is 2 4 Hour Format ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar [ Calendar . HOUR _ OF _ DAY ] ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar [ Calendar . HOUR ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġminute Ġ= Ġcalendar [ Calendar . MINUTE ] ĊĠĠĠĠĠĠĠ Ġcalendar [ year , Ġmonth , Ġday , Ġhour ] Ġ= Ġminute ĊĠĠĠĠĠĠĠ Ġto Do Item ?. to Do Rem ind Date Ġ= Ġcalendar . time ĊĠĠĠĠĠĠĠ Ġset Reminder TextView () ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġset Date And Time EditText (); ĊĠĠĠĠĠĠĠ Ġset Date EditText () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Time ( hour : ĠInt , Ġminute : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġif Ġ( to Do Item ?. to Do Rem ind Date Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . time Ġ= Ġto Do Item ?. to Do Rem ind Date ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġyear Ġ= Ġcalendar [ Calendar . YEAR ] ĊĠĠĠĠĠĠĠ Ġval Ġmonth Ġ= Ġcalendar [ Calendar . MONTH ] ĊĠĠĠĠĠĠĠ Ġval Ġday Ġ= Ġcalendar [ Calendar . DAY _ OF _ MONTH ] ĊĠĠĠĠĠĠĠ ĠLog . d (" O sk ar Sch ind ler ", Ġ" Time Ġset : Ġ$ hour ") ĊĠĠĠĠĠĠĠ Ġcalendar [ year , Ġmonth , Ġday , Ġhour , Ġminute ] Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġto Do Item ?. to Do Rem ind Date Ġ= Ġcalendar . time ĊĠĠĠĠĠĠĠ Ġset Reminder TextView () ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġset Date And Time EditText (); ĊĠĠĠĠĠĠĠ Ġset Time EditText () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġformat Date ( format String : ĠString ?, Ġdate To Format : ĠDate ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsimple DateFormat Ġ= ĠSimpleDateFormat ( format String ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsimple DateFormat . format ( date To Format ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Date EditText () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdateFormat Ġ= Ġ" d ĠM MM , Ġy yyy " ĊĠĠĠĠĠĠĠ Ġbinding . new Todo Date EditText !!. setText ( format Date ( date Format , Ġto Do Item ?. to Do Rem ind Date )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Time EditText () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdateFormat : ĠString ĊĠĠĠĠĠĠĠ ĠdateFormat Ġ= Ġif Ġ( DateFormat . is 2 4 Hour Format ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" k : mm " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" h : mm Ġa " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . new Todo Time EditText . setText ( format Date ( date Format , Ġto Do Item ?. to Do Rem ind Date )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Reminder TextView () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġto Do Item . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( this ?. to Do Rem ind Date Ġ!= Ġnull ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this ?. to Do Rem ind Date ?. before ( Date ()) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" O sk ar Sch ind ler ", Ġ" DATE Ġis Ġ$ m User Reminder Date ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . new ToDo DateTime Reminder TextView . text Ġ= ĠgetString ( R . string . date _ error _ check _ again ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . new ToDo DateTime Reminder TextView . setTextColor ( Color . RED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate : ĠDate Ġ= Ġto Do Rem ind Date Ġas ĠDate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate String Ġ= Ġformat Date (" d ĠM MM , Ġy yyy ", Ġdate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime String : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġam Pm String Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( DateFormat . is 2 4 Hour Format ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime String Ġ= Ġformat Date (" k : mm ", Ġdate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime String Ġ= Ġformat Date (" h : mm ", Ġdate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġam Pm String Ġ= Ġformat Date (" a ", Ġdate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfinal String Ġ= ĠString . format ( resources . getString ( R . string . rem ind _ date _ and _ time ), Ġdate String , Ġtime String , Ġam Pm String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . new ToDo DateTime Reminder TextView . setTextColor ( resources . getColor ( R . color . secondary _ text )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . new ToDo DateTime Reminder TextView . text Ġ= Ġfinal String ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . new ToDo DateTime Reminder TextView . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmake Result ( result : ĠInt ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Nav Utils . getParent Activity Name ( require Activity ()) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp !!. send ( this , Ġ" Action ", Ġ" Discard ĠTodo ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNav Utils . navigate Up From Same Task ( require Activity ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( binding . user ToDo EditText ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Time Set ( radial Picker Layout : ĠRad ial Picker Layout , Ġhour : ĠInt , Ġminute : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Time ( hour , Ġminute ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Date Set ( date Picker Dialog : ĠDate Picker Dialog , Ġyear : ĠInt , Ġmonth : ĠInt , Ġday : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Date ( year , Ġmonth , Ġday ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Enter Date Layout Visible ( checked : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( checked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠ Ġbinding . to Do Enter Date LinearLayout . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . to Do Enter Date LinearLayout . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Enter Date Layout Visible With Animations ( checked : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( checked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Reminder TextView () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . to Do Enter Date LinearLayout . animate (). alpha ( 1 . 0 f ). set Duration ( 5 0 0 ). set Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠAn imator . Animator Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( animation : ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . to Do Enter Date LinearLayout . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( animation : ĠAn imator ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( animation : ĠAn imator ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . to Do Enter Date LinearLayout . animate (). alpha ( 0 . 0 f ). set Duration ( 5 0 0 ). set Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠAn imator . Animator Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( animation : ĠAn imator ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . to Do Enter Date LinearLayout . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( animation : ĠAn imator ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( animation : ĠAn imator ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" AddTo Do Fragment " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDATE _ FORMAT Ġ= Ġ" MMM Ġd , Ġy yyy " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDATE _ FORMAT _ MONTH _ DAY Ġ= Ġ" MMM Ġd " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDATE _ FORMAT _ TIME Ġ= Ġ" H : m " ĊĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠAdd ToDo Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAdd ToDo Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }