package Ġcom . example . android . polit ical prepared ness . election Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . example . android . polit ical prepared ness . database . E lection Dao Ċ import Ġcom . example . android . polit ical prepared ness . network . models . Division Ċ Ċ // Create ĠFactory Ġto Ġgenerate ĠV oter Info ViewModel Ġwith Ġprovided Ġelection Ġdatasource Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ class ĠV oter Info ViewModel Factory ( ĊĠĠĠ Ġprivate Ġval ĠdataSource : ĠE lection Dao , ĊĠĠĠ Ġprivate Ġval Ġelection Id : ĠInt , ĊĠĠĠ Ġprivate Ġval Ġdivision : ĠDiv ision ): ĠViewModel Provider . Factory Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( model Class . isAssignableFrom ( V oter Info ViewModel :: class . java )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( V oter Info ViewModel ( dataSource , Ġelection Id , Ġdivision ) Ġas ĠT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Unknown ĠViewModel Ġclass ") ĊĠĠĠ Ġ} Ċ }