package Ġcom . clean architecture . presentation . albums Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . clean architecture . domain . albums . Domain Album Ċ import Ġcom . clean architecture . domain . albums . Get Album s UseCase Ċ import Ġcom . clean architecture . domain . common . Mapper Ċ import Ġcom . clean architecture . presentation . common . Base ViewModel Ċ import Ġcom . clean architecture . presentation . common . Ui Error Ċ Ċ class ĠAlbum s ViewModel ( private Ġval Ġget Album s UseCase : ĠGet Album s UseCase , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġmapper : ĠMapper < Domain Album , ĠUi Album >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġui Error Mapper : ĠMapper < Throwable , ĠUi Error >) Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" Album s ViewModel " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġloading LiveData Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġvar Ġcontent LiveData Ġ= ĠMutable LiveData < List < Ui Album >>() ĊĠĠĠ Ġvar Ġerror LiveData Ġ= ĠMutable LiveData < Ui Error >() ĊĊĠĠĠ Ġfun Ġget Album s () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= Ġget Album s UseCase . execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġmapper . map List ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresponse : ĠList < Ui Album > Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent LiveData . value Ġ= Ġresponse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror : ĠThrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġerror . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror LiveData . value Ġ= Ġui Error Mapper . map ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġadd Disposable ( dis posable ) ĊĠĠĠ Ġ} Ċ }