package Ġcom . power man 2 3 rus . currencies app . di . modules Ċ Ċ import Ġandroid . arch . lifecycle . ViewModel Ċ import Ġandroid . arch . lifecycle . ViewModel Provider Ċ import Ġandroid . content . Context Ċ import Ġcom . power man 2 3 rus . currencies app . App Ċ import Ġcom . power man 2 3 rus . currencies app . di . modules . data . api . Network Module Ċ import Ġcom . power man 2 3 rus . currencies app . di . modules . data . repositories . Repositories Module Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġjavax . inject . Provider Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġpower man 2 3 rus Ġon Ġ 1 0 / 0 4 / 2 0 1 9 . Ċ Ġ*/ Ċ Ċ @ Module ( ĊĠĠĠ Ġincludes Ġ= Ġ[ ĊĠĠĠĠĠĠĠ ĠNetwork Module :: class , ĊĠĠĠĠĠĠĠ ĠRe positories Module :: class ĊĠĠĠ Ġ] Ċ ) Ċ object ĠApp Module Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide AppContext ( application Ġ: ĠApp ) Ġ: ĠContext Ġ= Ġapplication ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġprovide ViewModel Factory ( view Models Ġ: ĠMap < Class < out ĠViewModel >, Ġ@ Jvm Suppress W ild cards ĠProvider < ViewModel >>) Ġ= ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠViewModel Provider . Factory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class Ġ: ĠClass < T >) Ġ: ĠT Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠviewModel Provider Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Models [ model Class ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalArgumentException (" ViewModel Ġclass Ġ$ model Class Ġnot Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠviewModel Provider . get () Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ }