/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠZ ak ay o ĠTh uk u . Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . s chat z design s . template Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . widget . Toast Ċ import Ġcom . google . android . gms . common . Google Api Availability Ċ import Ġcom . google . android . gms . common . Google Play Services Not Available Exception Ċ import Ġcom . google . android . gms . common . Google Play Services Repair able Exception Ċ import Ġcom . google . android . gms . security . Provider Installer Ċ import Ġcom . google . android . play . core . split compat . Split Compat Application Ċ import Ġcom . s chat z design s . core . di . Core Component Ċ import Ġcom . s chat z design s . core . di . D agger Core Component Ċ import Ġcom . s chat z design s . core . di . modules . Context Module Ċ import Ġcom . s chat z design s . core . utils . Theme Utils Ċ import Ġcom . s chat z design s . template . di . D agger Application Component Ċ import Ġjavax . inject . Inject Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠTemplate App Ġ: ĠSplit Compat Application () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġcore Component : ĠCore Component ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠObtain Ġcore Ġdagger Ġcomponent . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠThe Ġapplication Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġcore Component ( context : ĠContext ) Ġ= Ġ( context . application Context Ġas ? ĠTemplate App )?. core Component ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġthe Ġapplication Ġis Ġstarting , Ġbefore Ġany Ġactivity , Ġservice , Ġor Ġreceiver Ġobjects ĊĠĠĠĠ Ġ* Ġ( ex cluding Ġcontent Ġproviders ) Ġhave Ġbeen Ġcreated . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠSplit Compat Application . onCreate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ Ġinit Tim ber Debug Tree () ĊĠĠĠĠĠĠĠ Ġinit Core DependencyInjection () ĊĠĠĠĠĠĠĠ Ġinit App DependencyInjection () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitialize ĠTim ber Ġdebug Ġtree . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Tim ber Debug Tree () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . plant ( Tim ber . Debug Tree ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitialize Ġcore Ġdependency Ġinjection Ġcomponent . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Core DependencyInjection () Ġ{ ĊĠĠĠĠĠĠĠ Ġcore Component Ġ= ĠD agger Core Component ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. context Module ( Context Module ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitialize Ġapp Ġdependency Ġinjection Ġcomponent . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit App DependencyInjection () Ġ{ ĊĠĠĠĠĠĠĠ ĠD agger Application Component ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. core Component ( core Component ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inject ( this ) ĊĠĠĠ Ġ} Ċ } Ċ