/* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 ĠSt uart ĠK ent Ċ Ġ* Ċ Ġ* Ġ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 . github . stk ent . bug sh aker . flow . email Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . Package Info Ċ import Ġandroid . content . pm . PackageManager Ċ Ċ class ĠApp ( context : ĠContext ) Ġ{ ĊĊĠĠĠ Ġval Ġname : ĠString ĊĊĠĠĠ Ġval Ġversion Name : ĠString ĊĊĠĠĠ Ġval Ġversion Code : ĠInt ĊĊĠĠĠ Ġval Ġinstall Source : ĠInstall Source ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpackage Manager Ġ= Ġcontext . package Manager ĊĠĠĠĠĠĠĠ Ġval Ġapplication Info Ġ= Ġcontext . application Info ĊĠĠĠĠĠĠĠ Ġval Ġpackage Info Ġ= Ġget Package Info ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġinstaller PackageName Ġ= Ġpackage Manager . get Installer PackageName ( context . packageName ) ĊĊĠĠĠĠĠĠĠ Ġname Ġ= Ġapplication Info . load Label ( package Manager ). toString () ĊĠĠĠĠĠĠĠ Ġversion Name Ġ= Ġpackage Info ?. version Name Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġversion Code Ġ= Ġpackage Info ?. version Code Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġinstall Source Ġ= ĠInstall Source . from Installer PackageName ( installer PackageName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Package Info ( context : ĠContext ): ĠPackage Info ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpackage Manager Ġ= Ġcontext . package Manager ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . get Package Info ( context . packageName , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignored : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// no inspection ĠConstant Conditions : Ġpackage Info Ġshould Ġalways Ġbe Ġavailable Ġfor Ġthe Ġembedding Ġapp . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ