package Ġcn . gor outer . api . kotlin . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Context . MODE _ PRIVATE Ċ import Ġandroid . content . pm . Package Info Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġcn . gor outer . api . kotlin . Const . G OR OUT ER _ SP _ CACHE _ KEY Ċ import Ġcn . gor outer . api . kotlin . Const . LAST _ VERSION _ CODE Ċ import Ġcn . gor outer . api . kotlin . Const . LAST _ VERSION _ NAME Ċ import Ġcn . gor outer . api . kotlin . core . Logger Ċ Ċ object ĠPackage Utils Ġ{ ĊĊĊĠĠĠ Ġprivate Ġvar ĠNEW _ VERSION _ NAME : ĠString ?= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠNEW _ VERSION _ CODE : ĠInt ?= Ġnull ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġis New Version ( context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpackage Info Ġ= Ġget Package Info ( context ) ĊĠĠĠĠĠĠĠ Ġif ( package Info Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Name Ġ= Ġpackage Info . version Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Code Ġ= Ġpackage Info . version Code ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp Ġ= Ġcontext . get SharedPreferences ( G OR OUT ER _ SP _ CACHE _ KEY , ĠMODE _ PRIVATE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( version Name Ġ!= Ġsp . getString ( LAST _ VERSION _ NAME , Ġnull ) Ġ|| Ġversion Code Ġ!= Ġsp . getInt ( LAST _ VERSION _ CODE , Ġ- 1 )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnew Ġversion ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNEW _ VERSION _ NAME Ġ= Ġversion Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNEW _ VERSION _ CODE Ġ= Ġversion Code ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Package Info ( context : ĠContext ): ĠPackage Info ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġpackage Info : ĠPackage Info ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Info Ġ= Ġcontext . package Manager ?. get Package Info ( context . packageName , ĠPackage Manager . GET _ CONFIGURATION S ) ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( ex : ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . error (" Get Ġpackage Ġinfo Ġerror .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġpackage Info ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġupdate Version ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif (! android . text . TextUtils . isEmpty ( NEW _ VERSION _ NAME ) Ġ&& ĠNEW _ VERSION _ CODE Ġ!= Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp Ġ= Ġcontext . get SharedPreferences ( G OR OUT ER _ SP _ CACHE _ KEY , ĠMODE _ PRIVATE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp . edit (). putString ( LAST _ VERSION _ NAME , ĠNEW _ VERSION _ NAME ). put Int ( LAST _ VERSION _ CODE , ĠNEW _ VERSION _ CODE !! ). apply () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }