package Ġro . sor in . blank note . ui . notes Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . recyclerview . widget . St agger ed Grid LayoutManager Ċ import Ġcom . sor ini rim ies . kotlin x . alert Dialog Ċ import Ġcom . sor ini rim ies . kotlin x . getColor From Res Ċ import Ġcom . sor ini rim ies . kotlin x . init Ċ import Ġcom . sor ini rim ies . kotlin x . sn ack Ċ import Ġkotlinx . android . synt hetic . main . fragment _ notes .* Ċ import Ġro . sor in . blank note . R Ċ import Ġro . sor in . blank note . model . Note Ċ Ċ class ĠNotes Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠNotes ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnotes Adapter : ĠNotes Adapter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ= Ġinflater . inflate ( R . layout . fragment _ notes , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Providers . of ( this ). get ( Notes ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġrv Notes . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠSt agger ed Grid LayoutManager ( 2 , ĠSt agger ed Grid LayoutManager . VERTICAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotes Adapter Ġ= ĠNotes Adapter ( object Ġ: ĠNote Actions Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġselect Note ( note : ĠNote ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsn ack ( cont Notes Fragment , Ġnote . content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdelete Note ( note : ĠNote ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Delete Note Dialog ( note ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġedit Note ( note : ĠNote ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Edit Note Dialog ( note ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġnotes Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġswipe Refresh Layout . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Color Scheme Colors ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getColor From Res ( R . color . color Primary ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getColor From Res ( R . color . color Accent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Refresh Listener Ġ{ ĠviewModel . sync Notes With Cloud () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . notes LiveData . observe ( this , ĠObserver < List < Note >> Ġ{ Ġnotes Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotes Adapter . add Items ( notes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġswipe Refresh Layout . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . get Notes (). observe ( this , ĠObserver < List < Note >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotes Adapter . add Items ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġswipe Refresh Layout . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġfab Add Note . setOnClickListener Ġ{ Ġshow Add Note Dialog () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Edit Note Dialog ( note : ĠNote ) Ġ= Ġalert Dialog ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġlayout Inflater . init ( R . layout . dialog _ create _ note ) ĊĠĠĠĠĠĠĠ Ġset View ( v ) ĊĠĠĠĠĠĠĠ ĠsetTitle ( R . string . edit _ note _ label ) ĊĠĠĠĠĠĠĠ Ġset Positive Button ( R . string . edit _ note _ label ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠgroupName Ġ= Ġv . findViewById < EditText >( R . id . ed t Note Content ). text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnote . content Ġ= ĠgroupName ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . add Note ( note ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Negative Button ( R . string . cancel ) Ġ{ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Add Note Dialog () Ġ= Ġalert Dialog ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġlayout Inflater . init ( R . layout . dialog _ create _ note ) ĊĠĠĠĠĠĠĠ Ġset View ( v ) ĊĠĠĠĠĠĠĠ ĠsetTitle ( R . string . new _ note ) ĊĠĠĠĠĠĠĠ Ġset Positive Button ( R . string . add _ note ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnote Content Ġ= Ġv . findViewById < EditText >( R . id . ed t Note Content ). text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . add Note ( Note ( content Ġ= Ġnote Content )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Negative Button ( R . string . cancel ) Ġ{ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Delete Note Dialog ( note : ĠNote ) Ġ= Ġalert Dialog ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠ ĠsetTitle ( R . string . delete _ note _ label ) ĊĠĠĠĠĠĠĠ Ġset Positive Button ( R . string . delete _ note ) Ġ{ Ġ_, Ġ_ Ġ-> ĠviewModel . delete Note ( note ) Ġ} ĊĠĠĠĠĠĠĠ Ġset Negative Button ( R . string . cancel ) Ġ{ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĠNotes Fragment () ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG _ NOTES Ġ= Ġ" notes - fragment " ĊĠĠĠ Ġ} Ċ } Ċ