package Ġcom . know tech . kt _ notes . ui . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġcom . google . android . gms . common . api . ApiException Ċ import Ġcom . know tech . kt _ notes . R Ċ import Ġcom . know tech . kt _ notes . db . Note Ċ import Ġcom . know tech . kt _ notes . ui . view models . Notes ViewModel Ċ import Ġcom . know tech . kt _ notes . ui . Notes Activity Ċ import Ġkotlinx . android . synt hetic . main . fragment _ update .* Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ class ĠUpdate Fragment Ġ: ĠFragment ( R . layout . fragment _ update ) Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar ĠviewModel : ĠNotes ViewModel ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġ( activity Ġas ĠNotes Activity ). viewModel ĊĊĊĠĠĠĠĠĠĠ Ġval Ġargs : ĠUpdate Fragment Args Ġby Ġnav Args () ĊĊĠĠĠĠĠĠĠ Ġval Ġnote Ref Ġ= Ġargs . notes ĊĠĠĠĠĠĠĠ Ġval Ġdoc Id Ġ= Ġnote Ref . document _ id ĊĊĊĠĠĠĠĠĠĠ Ġval Ġnote Id Ġ= Ġnote Ref . note _ id ĊĠĠĠĠĠĠĠ Ġval Ġnote Title Ġ= Ġet Title . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġnote Desc Ġ= Ġet Description . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġfav Ġ= Ġnote Ref . note _ fav our ite ĊĠĠĠĠĠĠĠ Ġval Ġold Note Ġ= ĠNote ( note Id , Ġnote Title , Ġnote Desc , Ġnote _ fav our ite Ġ= Ġfav , Ġnote _ sync Ġ= Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġet Title . setText ( note Ref . note _ title ) ĊĠĠĠĠĠĠĠ Ġet Description . setText ( note Ref . note _ description ) ĊĊĠĠĠĠĠĠĠ ĠLog . d (" doc Id _ to _ update ", Ġdoc Id !! ) ĊĊĠĠĠĠĠĠĠ Ġbtn Update . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( et Title . text !!. isNotEmpty () Ġ&& Ġet Description . text !!. isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġel Title . error Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġel Description . error Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġmutable Map Of < String , Any >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" note _ title "] Ġ= Ġet Title . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" note _ description "] Ġ= Ġet Description . text . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnote Ġ= ĠNote ( note Id , doc Id , Ġet Title . text . toString (), Ġet Description . text . toString (), Ġnote _ fav our ite Ġ= Ġfav , Ġnote _ sync Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" doc Id _ ready _ to _ update ", Ġnote . document _ id !! ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCor outine Scope ( Dispatch ers . IO ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" doc Id _ update _ started ", Ġnote . document _ id !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . update Data ( note , Ġmap ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Home () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠApiException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), e . message , Toast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġel Title . error Ġ= Ġ" Enter Ġtitle " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġel Description . error Ġ= Ġ" Enter ĠDescription " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Home () Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ update Fragment _ to _ notes Fragment ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ