package Ġcom . di am ont . expense . tracker . add Category Dialog Fragment Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . res . Resources Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . di am ont . expense . tracker . util . database . Transaction Database Dao Ċ import Ġjava . lang . IllegalArgumentException Ċ Ċ class ĠAdd Category Dialog Fragment ViewModel Factory Ġ( ĊĠĠĠ Ġprivate Ġval Ġresources : ĠResources , ĊĠĠĠ Ġprivate Ġval Ġdatabase Dao : ĠTransaction Database Dao , ĊĠĠĠ Ġprivate Ġval Ġedit CategoryId : ĠInt ?, ĊĠĠĠ Ġprivate Ġval Ġcategory List Change CallBack : Ġ() Ġ-> ĠUnit Ċ ) Ġ: ĠViewModel Provider . Factory Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( model Class . isAssignableFrom ( Add Category Dialog Fragment ViewModel :: class . java )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAdd Category Dialog Fragment ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Dao , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit CategoryId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory List Change CallBack ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Unknown ĠViewModel Ġgiven Ġto ĠAdd Category Dialog Fragment ViewModel Factory ") ĊĠĠĠ Ġ} Ċ }