package Ġme . context of . template . base Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . pm . Package Info Ċ import Ġandroid . content . res . Resources Ċ import Ġme . context of . template . d agger . components . App Component Ċ import Ġme . context of . template . My Application ĊĊ Ċ /** Ċ Ġ* ĠDate Ġ 2 0 1 8 . Ġ 1 . Ġ 8 . Ċ Ġ* ĠAuthor ĠJun - hy o ung , ĠLee Ċ Ġ*/ Ċ class ĠAndroid Context Ġprivate Ġconstructor ( val Ġapplication : ĠMy Application ) Ġ{ ĊĊĠĠĠ Ġval Ġcomponent : ĠApp Component ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġapplication . app Component ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠINSTANCE : ĠAndroid Context ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġinternal Ġval ĠpackageName : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġapplication (). packageName ĊĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġversion Name : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpi : ĠPackage Info Ġ= Ġapplication (). package Manager . get Package Info ( Android Context . packageName , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpi . version Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġinitialize ( application : ĠMy Application ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ= ĠAndroid Context ( application ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġinstance (): ĠAndroid Context Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( INSTANCE Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Android Ġcontext Ġwas Ġnot Ġinitialized Ġyet .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠINSTANCE Ġas ĠAndroid Context ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġapplication (): ĠApplication Ġ= Ġinstance (). application ĊĊĠĠĠĠĠĠĠ Ġfun Ġstring ( res Id : ĠInt ): ĠString Ġ= Ġapplication (). getString ( res Id ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġresource (): ĠResources Ġ= Ġapplication (). resources ĊĊĠĠĠĠĠĠĠ Ġfun Ġcomponent (): ĠApp Component Ġ= Ġinstance (). component ĊĠĠĠ Ġ} Ċ }