package Ġcom . fre ed om . not ey . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view .* Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . fre ed om . not ey . R Ċ import Ġcom . fre ed om . not ey . databinding . Fragment Add Note Binding Ċ import Ġcom . fre ed om . not ey . db . Note Ċ import Ġcom . fre ed om . not ey . utils . Note Listener Ċ import Ġcom . fre ed om . not ey . utils . toast Ċ import Ġkotlinx . android . synt hetic . main . fragment _ add _ note .* Ċ import Ġkotlinx . android . synt hetic . main . toolbar .* Ċ import Ġorg . k oin . android x . view model . ext . android . viewModel Ċ Ċ class ĠAdd Note Fragment Ġ: ĠFragment (), ĠNote Listener Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġbinding : ĠFragment Add Note Binding ĊĊĠĠĠ Ġprivate Ġval Ġnote ViewModel : ĠNote ViewModel Ġby ĠviewModel () ĊĊĠĠĠ Ġlateinit Ġvar Ġview model : ĠNote ViewModel ĊĠĠĠ Ġprivate Ġvar Ġnotes : ĠNote ? Ġ= null ĊĊĠĠĠ Ġoverride Ġfun ĠSuccess ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext ?. toast ( message ) ĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( Add Note Fragment Directions . action Add Note To Home Fragment ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġerror ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext ?. toast ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . inflate ( in flater , ĠR . layout . fragment _ add _ note , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġview model Ġ= ĠViewModel Provider ( this ). get ( note ViewModel :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding . note ViewModel Ġ= Ġview model ĊĠĠĠĠĠĠĠ Ġview model . note Listener Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġ( activity Ġas ĠAppCompatActivity ). set Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġ( activity Ġas ĠAppCompatActivity ). support ActionBar ĊĠĠĠĠĠĠĠ Ġaction ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġaction ?. set Display Show Title Enabled ( false ) ĊĠĠĠĠĠĠĠ Ġarguments ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotes = Add Note Fragment Args . from Bundle ( it ). note ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview model . notes = this . notes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview model . title = notes ?. Title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview model . note = notes ?. Note ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . add _ note _ menu , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . save Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview model . save Not ee () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĊ Ċ } ĊĊ