package Ġcom . example . demo . framework . view Models Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . example . core . data . Note Ċ import Ġcom . example . demo . framework . di . components . D agger ViewModel Component Ċ import Ġcom . example . demo . framework . di . modules . Application Module Ċ import Ġcom . example . demo . framework . use Cases . Note Use Cases Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠList ViewModel ( application : ĠApplication ) Ġ: ĠAndroid ViewModel ( application ) Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġuse Cases Ġ: ĠNote Use Cases ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠD agger ViewModel Component . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. application Module ( Application Module ( getApplication ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inject ( this ) ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġprivate Ġval Ġcoroutine Scope Ġ= ĠCor outine Scope ( Dispatch ers . IO ) ĊĊĠĠĠ Ġval Ġdata Displayed Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġval Ġlist Notes Ġ= ĠMutable LiveData < List < Note >>() ĊĊĊĠĠĠ Ġfun Ġdisplay Notes (){ ĊĠĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval ĠlistOf Notes Ġ= Ġuse Cases . getAll Notes . invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Notes . post Value ( listOf Notes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Displayed . post Value ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }