package Ġcom . super cal im an . home . domain . use Case ĊĊ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . super cal im an . core . domain . Repository Ċ import Ġcom . super cal im an . core . domain . Result Ċ import Ġcom . super cal im an . core . domain . dto . Note Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Internal Cor outines Api Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠGet Note Task UseCase Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġvar Ġrepo : ĠRepository , Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġresult Ġ= ĠMutable LiveData < Result < List < Note >> >() ĊĊĠĠĠ Ġ@ Internal Cor outines Api ĊĠĠĠ Ġsuspend Ġfun Ġget Notes () Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . post Value ( Result . Loading ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġrepo . get Notes () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . post Value ( Result . Success ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . sorted By Ġ{ Ġdata Ġ-> Ġdata . date . time Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. reversed ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . post Value ( Result . Error ( e )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġobserve (): ĠMutable LiveData < Result < List < Note >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊ Ċ }