package Ġcom . sample . framework . mv vm . kotlin . ui . base Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . sample . framework . mv vm . kotlin . data . api . Api Helper Ċ import Ġcom . sample . framework . mv vm . kotlin . data . repository . Main Repository Ċ import Ġcom . sample . framework . mv vm . kotlin . ui . main . view model . Main ViewModel Ċ Ċ open Ġclass ĠViewModel Factory ( private Ġval Ġapi Helper : ĠApi Helper ) Ġ: ĠViewModel Provider . Factory Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( model Class . isAssignableFrom ( Main ViewModel :: class . java )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMain ViewModel ( Main Repository ( api Helper )) Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Unknown Ġclass Ġname ") ĊĠĠĠ Ġ} Ċ Ċ }