// ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠObject ivity . ĠAll Ġrights Ġreserved . Ċ // ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby ĠThe ĠMIT ĠLicense Ġ( MIT ) Ġthat Ġcan Ġbe Ċ // Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ċ package Ġuk . co . object ivity . beacon _ monitoring . plugin . connection Ċ Ċ import Ġandroid . content . Context Ċ import Ġorg . alt beacon . beacon . Beacon Manager Ċ import Ġuk . co . object ivity . beacon _ monitoring . plugin . service .* Ċ Ċ class ĠDependency Container Ġprivate Ġconstructor ( context : ĠContext ) Ġ{ ĊĠĠĠ Ġval Ġbluetooth Service : ĠBluetooth Service ĊĠĠĠ Ġval Ġmethod Call Handler : ĠMethod Call Handler ĊĠĠĠ Ġval ĠlocalStorage Service : ĠLocal Storage Service ĊĠĠĠ Ġval Ġbe acon Client : ĠBe acon Client ĊĠĠĠ Ġval Ġmonitoring Service : ĠMonitoring Service ĊĠĠĠ Ġval Ġlocation Service : ĠLocation Service ĊĠĠĠ Ġval Ġmonitoring Stream Handler : ĠMonitoring Stream Handler ĊĠĠĠ Ġval Ġr anging Stream Handler : ĠR anging Stream Handler ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbe acon Manager Ġ= ĠBe acon Manager . getInstance For Application ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġnotification Service Ġ= ĠNotification Service ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġpermission Service Ġ= ĠPermission Service ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġbuild Version Provider Ġ= ĠBuild Version Provider () ĊĠĠĠĠĠĠĠ Ġval Ġlocation Enabled Service Ġ= ĠLocation Enabled ServiceProvider ( context , Ġbuild Version Provider ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĊĠĠĠĠĠĠĠ Ġthis . bluetooth Service Ġ= ĠBluetooth Service ( context ) ĊĠĠĠĠĠĠĠ Ġthis . location Service Ġ= ĠLocation Service ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Version Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermission Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Enabled Service ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . localStorage Service Ġ= ĠLocal Storage Service ( context ) ĊĠĠĠĠĠĠĠ Ġthis . beacon Client Ġ= ĠBe acon Client ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbe acon Manager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlocalStorage Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Service ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . monitoring Service Ġ= ĠMonitoring Service ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlocalStorage Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbe acon Client , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbluetooth Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Service ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmethod Handler Factory Ġ= ĠMethod Handler Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbluetooth Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonitoring Service ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . method Call Handler Ġ= ĠMethod Call Handler ( method Handler Factory ) ĊĠĠĠĠĠĠĠ Ġthis . monitoring Stream Handler Ġ= ĠMonitoring Stream Handler ( monitoring Service ) ĊĠĠĠĠĠĠĠ Ġthis . r anging Stream Handler Ġ= ĠR anging Stream Handler ( monitoring Service ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠINSTANCE : ĠDependency Container ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( context : ĠContext ) Ġ= ĠINSTANCE Ġ?: Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ?: ĠDependency Container ( context ). also Ġ{ ĠINSTANCE Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ