package Ġcom . pe ter . let ss wt ich . factory Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . pe ter . let ss wt ich . data . User Ċ import Ġcom . pe ter . let ss wt ich . data . source . L ets Switch Repository Ċ import Ġcom . pe ter . let ss wt ich . dialog . Matched Dialog ViewModel Ċ import Ġcom . pe ter . let ss wt ich . edit profile . Edit Profile ViewModel Ċ import Ġcom . pe ter . let ss wt ich . profile . Profile ViewModel Ċ Ċ class ĠPro File ViewModel Factory Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠL ets Switch Repository , ĊĠĠĠ Ġprivate Ġval Ġmatched User : ĠUser , ĊĠĠĠ Ġprivate Ġval Ġfrom Map : ĠBoolean Ċ ) Ġ: ĠViewModel Provider . Factory Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel > Ġcreate ( model Class : ĠClass < T >) Ġ= ĊĠĠĠĠĠĠĠ Ġwith ( model Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis AssignableFrom ( Profile ViewModel :: class . java ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProfile ViewModel ( repository , Ġmatched User , Ġfrom Map ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Unknown ĠViewModel Ġclass : Ġ${ model Class . name }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġas ĠT Ċ }