package Ġbr . com . dou gl asm ot ta . wh itel abel tutorial . ui . products Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġbr . com . dou gl asm ot ta . wh itel abel tutorial . config . Config Ċ import Ġbr . com . dou gl asm ot ta . wh itel abel tutorial . domain . model . Product Ċ import Ġbr . com . dou gl asm ot ta . wh itel abel tutorial . domain . user case . Get Product UseCase Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjava . lang . Exception Ċ import Ġjavax . inject . Inject Ċ Ċ @ H ilt ViewModel Ċ class ĠPro dut cs ViewModel Ġ@ Inject Ġconstructor ( ĊĠ Ġprivate Ġval Ġget Product UseCase : ĠGet Product UseCase , ĊĠ Ġprivate Ġval Ġconfig : ĠConfig Ċ ): ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ products Data Ġ= ĠMutable LiveData < List < Product >>() ĊĠĠĠ Ġval Ġproduct Data : ĠLive Data < List < Product >> Ġ= Ġ_ products Data ĊĊĠĠĠ Ġprivate Ġval Ġ_ add Button Visibility Data Ġ= ĠMutable LiveData ( config . add Button Visibility ) ĊĠĠĠ Ġval Ġadd Button Visibility Data : ĠLive Data < Int > Ġ= Ġ_ add Button Visibility Data ĊĊĠĠĠ Ġfun Ġget Products () Ġ= ĠviewModel Scope . launch { ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprod ut cs Ġ= Ġget Product UseCase () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ products Data . value Ġ= Ġprod ut cs ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( e : ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( Ġ" Products ViewModel Ġ", Ġe . toString () Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }