package Ġorg . dh is 2 . use sc ases . jira Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġorg . dh is 2 . commons . prefs . Preference Provider Ċ import Ġorg . dh is 2 . commons . schedul ers . Scheduler Provider Ċ import Ġorg . dh is 2 . utils . resources . ResourceManager Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . adapter . rx java 2 . Rx Java 2 Call Adapter Factory Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ Ċ const Ġval ĠJIRA _ URL Ġ= Ġ" https :// jira . dh is 2 . org /" Ċ Ċ class ĠJira ViewModel Factory ( ĊĠĠĠ Ġval Ġpreference Provider : ĠPreference Provider , ĊĠĠĠ Ġval Ġresource Manager : ĠResourceManager , ĊĠĠĠ Ġval Ġscheduler Provider : ĠScheduler Provider Ċ ) Ġ: ĠViewModel Provider . Factory Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġj ira Service (): ĠJira Issue Service Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( J IRA _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( Ok HttpClient ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 2 Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. validate E ager ly ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create < J ira Issue Service >( J ira Issue Service :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠJira ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJira Repository ( jira Service (), Ġpreference Provider ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresource Manager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheduler Provider ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠT ĊĠĠĠ Ġ} Ċ } Ċ