package Ġcom . learning . photos how . shell . utils Ċ Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠViewModel > ĠFragment Activity . by ViewModels ( no inline Ġcreator : Ġ(() Ġ-> ĠT )? Ġ= Ġnull ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( creator Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ ĠViewModel Provider ( this ). get ( T :: class . java ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠViewModel Provider ( this , ĠBase ViewModel Factory ( creator )). get ( T :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠBase ViewModel Factory < T >( val Ġcreator : Ġ() Ġ-> ĠT ) Ġ: ĠViewModel Provider . Factory Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcreator () Ġas ĠT ĊĠĠĠ Ġ} Ċ } Ċ