package Ġcom . app . vol u . ui . event sc ategory Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . app . vol u . data . Resource Ċ import Ġcom . app . vol u . data . database . entities . Event Category Entity Ċ import Ġcom . app . vol u . data . repo . event category . Event Category Repo Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ @ H ilt ViewModel Ċ class ĠEvent Category ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġevent Category Repo : ĠEvent Category Repo Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcomposite Disposable Ġ= ĠComposite Disposable () ĊĠĠĠ Ġprivate Ġval Ġ_ event Categories Result : ĠMutable LiveData < Resource < List < Event Category Entity >>> Ġ= ĊĠĠĠĠĠĠĠ ĠMutable LiveData () ĊĊĊĠĠĠ Ġfun Ġget Event Categories From Api () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ event Categories Result . value Ġ= ĠResource . loading () ĊĊĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Category Repo . getEvent Category From Api () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġevent Category List Ġ-> Ġon Event Category List Retrie ved ( event Category List ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġerror Ġ-> Ġhandle Error ( error ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Error ( error : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . e (" error Ġ: Ġ${ error . localized Message }") ĊĠĠĠĠĠĠĠ Ġ_ event Categories Result . value Ġ= ĠResource . error ( error . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Event Category List Retrie ved ( event Category ListResult : ĠResult < List < Event Category Entity >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent Category ListResult . fold ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" event Ġcategory Ġlist Ġ: Ġ$ result ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ event Categories Result . value Ġ= ĠResource . success ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġerror Ġ-> Ġ_ event Categories Result . value Ġ= ĠResource . error ( error . message ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Event Categories Result (): ĠLive Data < Resource < List < Event Category Entity >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ_ event Categories Result ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . clear () ĊĠĠĠ Ġ} Ċ }