/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 4 ĠSnow dream ĠMobile Ġ< yang h ui 1 9 8 6 5 2 7 @ gmail . com > Ċ Ġ* Ċ Ġ* Ġ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 . snow dream . util Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Log Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġh ui . yang Ġon Ġ 2 0 1 4 / 1 1 / 9 . Ċ Ġ*/ Ċ class ĠBuild Config Util Ġprivate Ġconstructor () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠAssertionError (" No Ġconstructor Ġallowed Ġhere !") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDEBUG Ġ= Ġ" DEBUG " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠAP PLICATION _ ID Ġ= Ġ" APPLICATION _ ID " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠBUILD _ TYPE Ġ= Ġ" BUILD _ TYPE " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠFL AV OR Ġ= Ġ" FL AV OR " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠVERSION _ CODE Ġ= Ġ" VERSION _ CODE " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠVERSION _ NAME Ġ= Ġ" VERSION _ NAME " ĊĊĊĠĠĠĠĠĠĠ Ġ@ Deprecated ("") ĊĠĠĠĠĠĠĠ Ġ//@ Deprecated (" Use Ġ{@ link Ġ# APPLICATION _ ID }") ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠPACK AGE _ NAME Ġ= Ġ" PACKAGE _ NAME " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" Build Config Util " ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠGets Ġa Ġfield Ġfrom Ġthe Ġproject 's ĠBuild Config . ĠThis Ġis Ġuseful Ġwhen , Ġfor Ġexample , Ġfl avors ĊĠĠĠĠĠĠĠĠ Ġ* Ġare Ġused Ġat Ġthe Ġproject Ġlevel Ġto Ġset Ġcustom Ġfields . ĊĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠĠ ĠUsed Ġto Ġfind Ġthe Ġcorrect Ġfile ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param ĠfieldName ĠThe Ġname Ġof Ġthe Ġfield - to - access ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe Ġvalue Ġof Ġthe Ġfield , Ġor Ġ` null ` Ġif Ġthe Ġfield Ġis Ġnot Ġfound . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġ< T > Ġget Build Config Value ( context : ĠContext , ĠfieldName : ĠString ?): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( fieldName )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( TAG ," The ĠfileName Ġis Ġnull Ġor Ġempty .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclazz Ġ= ĠClass . forName ( context . packageName Ġ+ Ġ". Build Config ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfield Ġ= Ġclazz . getField ( fieldName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfield . get ( null ) Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠClass NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNoSuch Field Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegal AccessException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠBuild Config . Debug ĊĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġis Debug ( context : ĠContext ): ĠBoolean ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Build Config Value < Boolean >( context , ĠDEBUG ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠBuild Config . APPLICATION _ ID ĊĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġget Application Id ( context : ĠContext ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Build Config Value ( context , ĠAP PLICATION _ ID ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠBuild Config . PACKAGE _ NAME ĊĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Deprecated ("") ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġget PackageName ( context : ĠContext ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Build Config Value ( context , ĠPACK AGE _ NAME ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠBuild Config . BUILD _ TYPE ĊĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġget Build Type ( context : ĠContext ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Build Config Value ( context , ĠBUILD _ TYPE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠBuild Config . FL AV OR ĊĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġget Flavor ( context : ĠContext ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Build Config Value ( context , ĠFL AV OR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠBuild Config . Version Name ĊĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġget Version Name ( context : ĠContext ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Build Config Value ( context , ĠVERSION _ NAME ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠBuild Config . VERSION _ CODE ĊĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġget Version Code ( context : ĠContext ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Build Config Value < Int >( context , ĠVERSION _ CODE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ