package Ġlife tracker . feature . properties Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . lifecycle . coroutine Scope Ċ import Ġkotlinx . coroutines . flow . launch In Ċ import Ġkotlinx . coroutines . flow . on Each Ċ import Ġlife tracker . common . database . Data Ċ import Ġlife tracker . feature . properties . databinding . Fragment Properties Binding ĊĊ Ċ class ĠProperties Fragment ( ĊĠĠĠ Ġprivate Ġval Ġdata : ĠData , ĊĠĠĠ Ġprivate Ġval Ġon Property Selected : Ġ( String ) Ġ-> ĠUnit Ċ ) Ġ: ĠFragment ( R . layout . fragment _ properties ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠProperties ViewModel Ġby Ġview Models Ġ{ ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠViewModel Provider . Factory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperties ViewModel ( data ) Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġadapter Ġby Ġlazy Ġ{ ĠProperty Adapter ( on Property Selected ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( Fragment Properties Binding . bind ( view )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). setTitle ( require Context (). application Info . label Res ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . getState () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Each Ġ{ Ġadapter . setData ( it . properties ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Lifecycle Owner . lifecycle . coroutine Scope ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ