package Ġcom . act . di ary . tracker . detail activity Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ 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 . act . di ary . tracker . R Ċ import Ġcom . act . di ary . tracker . convert Long ToDate String Ċ import Ġcom . act . di ary . tracker . database . Di ary Activity Database Ċ import Ġcom . act . di ary . tracker . databinding . Fragment Detail Binding Ċ Ċ class ĠDetail Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Detail Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠDetail ViewModel ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater , ĠR . layout . fragment _ detail , Ġcontainer , Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġapplication Ġ= Ġrequire NotNull ( this . activity ). application ĊĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠDetail Fragment Args . from Bundle ( arguments !! ) ĊĊĠĠĠĠĠĠĠ Ġval ĠdataSource Ġ= ĠDi ary Activity Database . getInstance ( application ). di ary Activity Database Dao ĊĊĠĠĠĠĠĠĠ Ġval ĠviewModel Factory Ġ= ĠDetail ViewModel Factory ( arguments . activity Key , ĠdataSource ) ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewModel Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĠviewModel Factory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). get ( Detail ViewModel :: class . java ) ĊĊĊĠĠĠĠĠĠĠ Ġadd Observer s () ĊĠĠĠĠĠĠĠ Ġadd Events () ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġfun Ġadd Observer s () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . navigate ToList . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . find Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDetail Fragment Directions . action Detail Fragment ToList Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . done Navig ating () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . data . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . input Type Activity . setText ( it . type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . input Description Activity . setText ( it . comment ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . date Start . text Ġ= ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Start Ġ% s ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconvert Long ToDate String ( it . startTime Milli ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġif Ġ( it . endTime Milli Ġ== Ġ 0 L ) Ġ" Running " Ġelse ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" End Ġ% s ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconvert Long ToDate String ( it . endTime Milli ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . date End . text Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . retrieve Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Events () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . done Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Set Di ary Activity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . input Type Activity . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . input Description Activity . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ