/* Ċ Ġ* Ġ Ġ--- license - start Ċ Ġ* Ġ Ġeu - digital - green - certificates Ġ/ Ġdg ca - verifier - app - android Ċ Ġ* Ġ Ġ--- Ċ Ġ* Ġ ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠT - Systems ĠInternational ĠGmbH Ġand Ġall Ġother Ġcontributors Ċ Ġ* Ġ Ġ--- Ċ Ġ* Ġ Ġ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 . Ċ Ġ* Ġ Ġ--- license - end Ċ Ġ* Ċ Ġ* Ġ ĠCreated Ġby Ġdan iel i ul ian rot aru Ġon Ġ 5 / 2 5 / 2 1 Ġ 3 : 4 4 ĠPM Ċ Ġ*/ Ċ Ċ package Ġit . min ister ode ll as al ute . ver ific aC 1 9 sdk . util Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . net . Network Capabilities Ċ import Ġandroid . os . Build Ċ import Ġjava . security . Message Digest Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ċ Ġ* ĠThis Ġobject Ġcontains Ġuseful Ġgeneral Ġutilities . Ċ Ġ* Ċ Ġ*/ Ċ object ĠUtility Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġcomp ares Ġtwo Ġversions Ġof Ġthe Ġapp , Ġ[ v 1 ] Ġand Ġ[ v 2 ], Ġreturning Ġthe Ġresult Ġof Ġthis ĊĠĠĠĠ Ġ* Ġcomparison Ġas Ġan Ġ[ Int ] Ġvalue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġversion Compare ( v 1 : ĠString , Ġv 2 : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġv num Ġstores Ġeach Ġnumeric Ġpart Ġof Ġversion ĊĠĠĠĠĠĠĠ Ġvar Ġv num 1 Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġv num 2 Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġ// Ġloop Ġuntil Ġboth ĠString Ġare Ġprocessed ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġj Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġv 1 . length Ġ|| Ġj Ġ< Ġv 2 . length ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠStore Ġnumeric Ġpart Ġof Ġversion Ġ 1 Ġin Ġv num 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġv 1 . length Ġ&& Ġv 1 [ i ] Ġ!= Ġ'.') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv num 1 Ġ= Ġ( v num 1 Ġ* Ġ 1 0 Ġ+ Ġ( v 1 [ i ] Ġ- Ġ' 0 ')) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġstore Ġnumeric Ġpart Ġof Ġversion Ġ 2 Ġin Ġv num 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( j Ġ< Ġv 2 . length Ġ&& Ġv 2 [ j ] Ġ!= Ġ'.') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv num 2 Ġ= Ġ( v num 2 Ġ* Ġ 1 0 Ġ+ Ġ( v 2 [ j ] Ġ- Ġ' 0 ')) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( v num 1 Ġ> Ġv num 2 ) Ġreturn Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( v num 2 Ġ> Ġv num 1 ) Ġreturn Ġ- 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġif Ġequal , Ġreset Ġvariables Ġand Ġgo Ġfor Ġnext Ġnumeric Ġpart ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv num 2 Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv num 1 Ġ= Ġv num 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġencode Base 6 4 ( input : ĠByteArray ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase 6 4 . get Encoder (). encode ToString ( input ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . util . Base 6 4 . encode ToString ( input , Ġandroid . util . Base 6 4 . NO _ WRAP ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠString . sha 2 5 6 (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġhash String ( this , Ġ" SHA - 2 5 6 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhash String ( input : ĠString , Ġalgorithm : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġencode Base 6 4 ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMessage Digest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getInstance ( algorithm ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. digest ( input . toByteArray ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Online ( context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconnectivity Manager Ġ= Ġcontext . getSystem Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ĠConnect ivity Manager ĊĠĠĠĠĠĠĠ Ġval Ġactive Network Ġ= Ġconnectivity Manager . active Network Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġcapabilities Ġ= Ġconnectivity Manager . get Network Capabilities ( active Network ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( capabilities . has Capability ( Network Capabilities . NET _ CAP ABILITY _ INTER NET )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ }