package Ġcom . v ictor rub ia . tf g . presentation . entry Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . v ictor rub ia . tf g . domain . use case . GetUser UseCase Ċ Ċ /** Ċ Ġ* ĠFactory Ġfor Ġcreating Ġa Ġ[ Entry ViewModel ] Ġwith Ġa Ġconstructor Ġthat Ġtakes Ġa Ġ[ GetUser UseCase ]. Ċ Ġ* Ġ@ property ĠgetUser UseCase ĠA Ġ[ GetUser UseCase ] Ġfor Ġgetting Ġthe Ġuser . Ċ Ġ*/ Ċ class ĠEntry ViewModel Factory ( ĊĠĠĠ Ġprivate Ġval ĠgetUser UseCase : ĠGetUser UseCase Ċ ) Ġ: ĠViewModel Provider . Factory Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġnew Ġinstance Ġof Ġthe Ġ[ Entry ViewModel ] Ġclass , Ġre using Ġthe Ġobjects Ġthat Ġare Ġpassed Ġin . ĊĠĠĠĠ Ġ* Ġ@ param Ġmodel Class ĠThe Ġclass Ġof Ġthe Ġ[ ViewModel ] Ġto Ġcreate . ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġnew Ġinstance Ġof Ġthe Ġ[ Entry ViewModel ] Ġclass . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel > Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠEntry ViewModel ( getUser UseCase ) Ġas ĠT ĊĠĠĠ Ġ} Ċ }