package Ġcom . sv . keep track Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . sv . keep track . data . item Ċ import Ġcom . sv . keep track . databinding . Fragment Take Note Binding Ċ Ċ class ĠTake Note Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠviewModel : Ġnote ViewModel Ġby Ġactivity ViewModels { ĊĠĠĠĠĠ Ġnote ViewModel Factory ( ĊĠĠĠĠĠĠĠĠĠ Ġ( activity ?. application Ġas Ġnote Application ). database . item Dao () ĊĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġlateinit Ġvar Ġitem : Ġitem ĊĠĠĠ Ġprivate Ġvar Ġ_ binding : Fragment Take Note Binding ?= null ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () =_ binding !! ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding = Fragment Take Note Binding . inflate ( in flater , container , false ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġis Entry Valid (): Boolean { ĊĠĠĠĠĠĠĠ Ġreturn ĠviewModel . is Entry Valid ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . input . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . note Input . text . toString ()) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġadd New Item (){ ĊĠĠĠĠĠĠ Ġif ( is Entry Valid ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . add New Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . input . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . note Input . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ take Note _ to _ home 2 ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . save . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd New Item () ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ// ĠHide Ġkeyboard . ĊĠĠĠĠĠĠĠ Ġval Ġinput Method Manager Ġ= Ġrequire Activity (). getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġinput Method Manager . hide Soft Input From Window ( require Activity (). current Focus ?. window Token , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} Ċ Ċ }