package Ġio . fresh d roid . v iny l Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . lifecycle . Lifecycle Observer Ċ import Ġandroidx . lifecycle . Process Lifecycle Owner Ċ import Ġandroidx . multi dex . Multi Dex Application Ċ import Ġio . fresh d roid . v iny l . core . Core Component Ċ import Ġio . fresh d roid . v iny l . core . Core Module Ċ import Ġio . fresh d roid . v iny l . core . D agger Core Component Ċ import Ġio . fresh d roid . v iny l . core . ui . Base Activity Ċ import Ġio . fresh d roid . v iny l . core . ui . Base Fragment Ċ import Ġtim ber . log . Tim ber Ċ Ċ open Ġclass ĠV iny l Application Ġ: ĠMulti Dex Application (), ĠLifecycle Observer Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcore Component : ĠCore Component Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠD agger Core Component . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. core Module ( Core Module ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġcore Component ( context : ĠContext ) Ġ= Ġ( context . application Context Ġas ĠV iny l Application ). core Component ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcore Component (): ĠCore Component Ġ= Ġcore Component ĊĊĠĠĠ Ġprotected Ġopen Ġfun ĠisIn UnitTests (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ ĠProcess Lifecycle Owner . get (). lifecycle . add Observer ( this ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . plant ( Tim ber . Debug Tree ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ fun ĠBase Activity . core Component () Ġ= ĠV iny l Application . core Component ( this ) Ċ Ċ fun ĠBase Fragment . core Component () Ġ= ĠV iny l Application . core Component ( require NotNull ( this . context ))