package Ġcom . ned alu of . post x . ui Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . ned alu of . domain . use case . Post UseCase Ċ import Ġcom . ned alu of . entities . Post Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġkotlinx . coroutines . flow . Mutable State Flow Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġn ed alu of Ġon Ġ 2 / 6 / 2 0 2 1 . Ċ Ġ*/ Ċ @ H ilt ViewModel Ċ class ĠMain ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġuse Case : ĠPost UseCase Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġposts Ġ= ĠMutable LiveData ( emptyList < Post >()) ĊĠĠĠ Ġval Ġerror Ġ= ĠMutable State Flow < String ? >( null ) ĊĊĠĠĠ Ġprivate Ġfun Ġget Posts () Ġ{ ĊĠĠĠĠĠĠĠ Ġuse Case . load Posts ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Scope , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= Ġ{ Ġcoming Posts Ġ-> Ġposts . value Ġ= Ġcoming Posts Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= Ġ{ Ġcoming Error Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" get Posts : ĠError : Ġ$ coming Error ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror . value Ġ= Ġcoming Error ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġget Posts () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Main ViewModel " ĊĠĠĠ Ġ} Ċ }