/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 . ĠN uh ĠK oca . ĠAll ĠRights ĠReserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġio . github . nu hk oca . lib bra . di Ċ Ċ import Ġandroid . content . Context Ċ import Ġdagger . Bind s Instance Ċ import Ġdagger . Component Ċ import Ġdagger . Module Ċ import Ġio . github . nu hk oca . lib bra . binding . di . Binding Component Ċ import Ġio . github . nu hk oca . lib bra . di . factory . Fragment Bindings Module Ċ import Ġio . github . nu hk oca . lib bra . di . factory . ViewModel Builder Module Ċ import Ġio . github . nu hk oca . lib bra . ui . di . Main Component Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠThe Ġmain Ġcomponent Ġto Ġbuild ĠD agger Ġgraph . Ċ Ġ*/ Ċ @ Singleton Ċ @ Component ( ĊĠĠĠ Ġmodules Ġ= Ġ[ ĊĠĠĠĠĠĠĠ ĠApp Module :: class , ĊĠĠĠĠĠĠĠ ĠSub components Module :: class , ĊĠĠĠĠĠĠĠ ĠFragment Bindings Module :: class , ĊĠĠĠĠĠĠĠ ĠViewModel Builder Module :: class ĊĠĠĠ Ġ] Ċ ) Ċ interface ĠApp Component Ġ{ ĊĊĠĠĠ Ġ@ Component . Factory ĊĠĠĠ Ġinterface ĠFactory Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate (@ Bind s Instance Ġapplication Context : ĠContext ): ĠApp Component ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdata Binding Component (): ĠBinding Component . Factory ĊĊĠĠĠ Ġfun Ġmain Component (): ĠMain Component . Factory Ċ } Ċ Ċ @ Module ( ĊĠĠĠ Ġsub components Ġ= Ġ[ ĊĠĠĠĠĠĠĠ ĠBinding Component :: class , ĊĠĠĠĠĠĠĠ ĠMain Component :: class ĊĠĠĠ Ġ] Ċ ) Ċ object ĠSub components Module Ċ