package Ġcom . wil low tree . voc able Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . wil low tree . voc able . keyboard . Keyboard ViewModel Ċ import Ġcom . wil low tree . voc able . presets . Pre sets ViewModel Ċ import Ġcom . wil low tree . voc able . presets . adapter . AddTo Category Picker ViewModel Ċ import Ġcom . wil low tree . voc able . settings .* Ċ import Ġcom . wil low tree . voc able . splash . Splash ViewModel Ċ Ċ class ĠBase ViewModel Factory Ġ: ĠViewModel Provider . Factory Ġ{ ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Class . isAssignableFrom ( Splash ViewModel :: class . java ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSpl ash ViewModel () Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Class . isAssignableFrom ( Pre sets ViewModel :: class . java ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPre sets ViewModel () Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Class . isAssignableFrom ( Settings ViewModel :: class . java ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSettings ViewModel () Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Class . isAssignableFrom ( Keyboard ViewModel :: class . java ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠKeyboard ViewModel () Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Class . isAssignableFrom ( Edit Ph rases ViewModel :: class . java ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠEdit Ph rases ViewModel () Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Class . isAssignableFrom ( Edit Categories ViewModel :: class . java ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠEdit Categories ViewModel () Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Class . isAssignableFrom ( Add Update Category ViewModel :: class . java ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAdd Update Category ViewModel () Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Class . isAssignableFrom ( Add Phrase ViewModel :: class . java ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAdd Phrase ViewModel () Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Class . isAssignableFrom ( AddTo Category Picker ViewModel :: class . java ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAdd To Category Picker ViewModel () Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Unknown Ġclass : Ġ${ model Class :: class . java . canonical Name }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }