package Ġcom . by outline . sample application . d agger example Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroid . content . res . Resources Ċ import Ġandroidx . databinding . Observable Int Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . by outline . sample application . d agger example . databinding . Fragment D agger Example Binding Ċ import Ġcom . by outline . secrets au ce . databinding . inflate AndSet VM Ċ import Ġcom . by outline . secrets au ce . di . Injectable Ċ import Ġcom . by outline . secrets au ce . di . ViewModel Key Ċ import Ġcom . by outline . secrets au ce . lifecycle . Attach able ViewModel Ċ import Ġcom . by outline . secrets au ce . lifecycle . get ViewModel With Auto Lifecycle Ċ import Ġcom . by outline . sub module lib . D agger Java Lib Module Ċ import Ġcom . by outline . sub module lib . Java Lib Dependency Interface Ċ import Ġdagger . Bind s Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġdagger . mult ib ind ings . Into Map Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Qualifier Ċ Ċ /** Ċ Ġ* ĠExample Ġhow Ġto Ġconfigure ĠFragment Ġto Ġwork Ġwith ĠD agger ĠAndroid Ġinjection Ġand Ġwith Ġ[ ViewModel ] Ċ Ġ*/ Ċ class ĠAndroid Lib Sub module D agger Fragment Ġ: ĠFragment (), ĠInjectable Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ĠWhen Ġusing Ġgeneric Ġtypes Ġlike Ġ[ String ] Ġit Ġis Ġuseful Ġto Ġspecify Ġ[ Qualifier ] Ġto Ġensure Ġthat ĊĠĠĠĠ Ġ* Ġ Ġcorrect Ġdependency Ġwill Ġbe ĠInject ed . ĠIn ĠKotlin Ġuse Ġ`@ field : Annotation Name ` Ġinstead Ġof Ġjust Ġ`@ Annotation Name ` ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Inject Ġ@ field : D agger Example Fragment Label Text ĊĠĠĠ Ġlateinit Ġvar Ġlabel Text : ĠString ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġdependency From Pure Java Module : ĠJava Lib Dependency Interface ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġlayout Ġusing ĠAndroid ĠData Binding Ġand Ġpass Ġit ĠviewModel ĊĠĠĠĠĠĠĠ Ġreturn Ġinf late AndSet VM < Fragment D agger Example Binding >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater , Ġcontainer , ĠR . layout . fragment _ d agger _ example , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ViewModel With Auto Lifecycle ( D agger Example Fragment VM :: class ) ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAlthough Ġrare ly Ġneeded Ġwhen Ġusing ĠviewModel Ġyou Ġcan Ġalso Ġmanually Ġuse Ġ@ Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġand Ġset Ġvalues Ġby Ġhand ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Label . text Ġ= Ġlabel Text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Pure Java Tv . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . fragment _ pure _ java _ dep , Ġdependency From Pure Java Module . java Class . simple Name ) ĊĠĠĠĠĠĠĠ Ġ}. root ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Qualifier Ċ @ Retention ( Annotation Retention . RUNTIME ) Ċ internal Ġannotation Ġclass ĠD agger Example Fragment Label Text Ċ Ċ @ Module Ċ abstract Ġclass ĠD agger Example Fragment Module Ġ{ ĊĠĠĠ Ġ@ Bind s Ġ@ Into Map ĊĠĠĠ Ġ@ ViewModel Key ( D agger Example Fragment VM :: class ) ĊĠĠĠ Ġabstract Ġfun Ġvm ( vm : ĠD agger Example Fragment VM ): ĠViewModel Ċ } Ċ Ċ class ĠD agger Example Fragment VM Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġval Ġcounter : ĠCounter Ċ ) Ġ: ĠAttach able ViewModel < Any >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( view : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( view ) ĊĠĠĠĠĠĠĠ Ġcounter . inc () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠCounter Ġ@ Inject Ġconstructor () Ġ: ĠObservable Int ( 0 ) Ġ{ ĊĠĠĠ Ġfun Ġinc () Ġ{ ĊĠĠĠĠĠĠĠ Ġset ( get () Ġ+ Ġ 1 ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Module ( includes Ġ= Ġ[ D agger Java Lib Module :: class ]) Ċ class ĠFragment Context Dependency Module Ġ{ ĊĠĠĠ Ġ@ Provides Ġ@ D agger Example Fragment Label Text ĊĠĠĠ Ġfun Ġtext ( resources : ĠResources ): ĠString Ġ= Ġresources . getString ( R . string . fragment _ label ) Ċ } ĊĊ