package Ġcom . k ob aken 0 0 2 9 . kot odo . view Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . databinding . Data Binding Util Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . view . input method . Input Method Manager . HIDE _ NOT _ ALWAYS Ċ import Ġandroid . widget . Toast Ċ import Ġandroid . widget . Toast . LENGTH _ SHORT Ċ import Ġcom . google . firebase . database .* Ċ import Ġcom . k ob aken 0 0 2 9 . kot odo . R Ċ import Ġcom . k ob aken 0 0 2 9 . kot odo . databinding . Activity Main Binding Ċ import Ġcom . k ob aken 0 0 2 9 . kot odo . model . Todo Ċ import Ġcom . k ob aken 0 0 2 9 . kot odo . util . Date Util . now Ċ import Ġcom . k ob aken 0 0 2 9 . kot odo . view . adapter . Todo Adapter Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠMain View Handler Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Main Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġinput Method Manager : ĠInput Method Manager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠTodo Adapter ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfirebase Reference : ĠDatabase Reference ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġinput Method Manager Ġ= Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĊĠĠĠĠĠĠĠ Ġfirebase Reference Ġ= ĠFirebase Database . getInstance (). reference . child (" messages ") ĊĊĠĠĠĠĠĠĠ Ġbinding . handler Ġ= Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġbinding . todo List . adapter Ġ= ĠTodo Adapter ( this , Ġthis , Ġfirebase Reference ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġadapter Ġ= Ġthis Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġadapter . cleanup () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispatch Touch Event ( ev : ĠMotion Event ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . root . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Method Manager . hide Soft Input From Window ( window Token , ĠH IDE _ NOT _ ALWAYS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Focus () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . dispatch Touch Event ( ev ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Todo () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġbinding . todo Edit . text . toString () ĊĠĠĠĠĠĠĠ Ġif Ġ(! content . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtodo Ġ= ĠTodo ( content , Ġfalse , Ġnow (), Ġnow ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . add ( todo ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , Ġ"${ todo . content } ãĤĴ è¿½åĬł ãģĹãģ¾ãģĹãģŁ ", ĠLEN GTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . todo Edit . setText ("") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , Ġ" åħ¥åĬĽ ãģĹãģ¦ãģıãģłãģķãģĦ ", ĠLEN GTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Todo ( key : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this ). set Cancel able ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . setTitle (" åīĬéĻ¤ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . setMessage (" æľ¬ å½ĵ ãģ« åīĬéĻ¤ ãģĹãģ¦ ãĤĤ èī¯ ãģĦ ãģ§ãģĻ ãģĭ ï¼Ł ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . set Positive Button ( android . R . string . ok , Ġ{ Ġdialog , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . remove ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , Ġ" åīĬéĻ¤ ãģĹãģ¾ãģĹãģŁ ", ĠLEN GTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . set Neutral Button ( android . R . string . cancel , Ġ{ Ġdialog , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . show () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ