package Ġcom . c int ory . hyper ion . core . internal Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġcom . c int ory . hyper ion . core . Public Control Ċ import Ġcom . c int ory . hyper ion . plugin . v 1 . Application Extension Ċ import Ġdagger . Bind s Instance Ċ import Ġdagger . Component Ċ Ċ @ App Scope Ċ @ Component ( modules Ġ= Ġ[( App Module :: class )]) Ċ interface ĠApp Component Ġ{ ĊĊĠĠĠ Ġval Ġapplication : ĠApplication ĊĠĠĠ Ġval Ġapplication Extension : ĠApplication Extension ĊĠĠĠ Ġval Ġactivity Lifecycle Callbacks : ĠApplication . Activity Lifecycle Callbacks ĊĠĠĠ Ġval Ġpublic Control : ĠPublic Control ĊĠĠĠ Ġval Ġplugin Repository : ĠPlugin Repository ĊĊĠĠĠ Ġ@ Component . Builder ĊĠĠĠ Ġinterface ĠBuilder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Bind s Instance ĊĠĠĠĠĠĠĠ Ġfun Ġapp ( application : ĠApplication ): ĠBuilder ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠApp Component ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠH older Ġprivate Ġconstructor () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAssertionError (" No Ġinstances .") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠApp Component ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( context : ĠContext ): ĠApp Component Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( instance Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( Holder :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( instance Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ= ĠD agger App Component . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. app ( context . application Context Ġas ĠApplication ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinstance !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }