/* Ċ Ġ* ĠThe ĠMIT ĠLicense Ġ( MIT ) Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 1 8 ĠNB CO ĠY an dex . Money ĠLLC Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ċ Ġ* Ġassociated Ġdocumentation Ġfiles Ġ( the ĠâĢľ Software âĢĿ ), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ċ Ġ* Ġwithout Ġlimitation Ġthe Ġrights Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ċ Ġ* Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ċ Ġ* Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ġor Ġsubstantial Ċ Ġ* Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED ĠâĢľ AS ĠIS âĢĿ, ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĠIMPLIED , Ċ Ġ* ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR Ċ Ġ* ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE Ċ Ġ* ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT Ċ Ġ* ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR Ċ Ġ* ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġru . yandex . money . android . sdk . impl . extensions Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . Activity Info Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . content . pm . Signature Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . util . Base 6 4 Ċ import Ġru . yandex . money . android . sdk . R Ċ import Ġru . yandex . money . android . sdk . impl . No Internet Exception Ċ import Ġru . yandex . money . android . sdk . impl . secure . sha 2 5 6 Ċ import Ġjava . nio . ByteBuffer Ċ Ċ /* Ċ Ġ* ĠThe ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 0 7 âĢĶ 2 0 1 7 ĠNB CO ĠY an dex . Money ĠLLC Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ Ġ* Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN Ċ Ġ* ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ internal Ġfun ĠContext . find Default Local Activity For Intent ( intent : ĠIntent ): ĠActivity Info ? Ġ{ ĊĠĠĠ Ġval Ġapplication Context Ġ= Ġthis . application Context ĊĠĠĠ Ġval Ġapplication Package Ġ= Ġapplication Context . packageName ĊĠĠĠ Ġval Ġflags Ġ= ĠPackage Manager . GET _ META _ DATA ĊĠĠĠ Ġreturn Ġapplication Context . package Manager . query Intent Activities ( intent , Ġflags ) ĊĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . activity Info Ġ} ĊĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġapplication Package Ġ== Ġit . packageName Ġ} Ċ } Ċ Ċ internal Ġfun ĠContext . check Connection () Ġ{ ĊĠĠĠ Ġval Ġconnectivity Manager Ġ= Ġget System Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ĠConnect ivity Manager ? ĊĠĠĠ Ġreturn Ġwhen Ġ( connectivity Manager ?. active Network Info ?. isConnected Or Connecting ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtrue Ġ-> ĠUnit ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠNo Internet Exception () ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ get : Suppress Lint (" Hardware Ids ") Ċ internal Ġval ĠContext . android Id : ĠString ĊĠĠĠ Ġget () Ġ= ĠSettings . Secure . getString ( content Resolver , ĠSettings . Secure . ANDROID _ ID ) Ċ Ċ @ get : Suppress Lint (" PackageManager Get Signatures ") Ċ internal Ġval ĠContext . app Signatures ĊĠĠĠ Ġget () Ġ= Ġpackage Manager . get Package Info ( packageName , ĠPackage Manager . GET _ SIGNATURE S ). signatures Ġ?: Ġempty Array () Ċ Ċ internal Ġval ĠContext . app Signatures Fingerprint : ĠByteArray ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsignatures Bytes Ġ= Ġapp Signatures . map ( Signature :: toByteArray ) ĊĊĠĠĠĠĠĠĠ Ġcheck ( signatures Bytes . isNotEmpty ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġfingerprint Ġ= Ġsignatures Bytes . fold ( ByteBuffer . allocate ( signatures Bytes . sum By Ġ{ Ġit . size Ġ}), ĠByteBuffer :: put ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsha 2 5 6 ( fingerprint . array ()) ĊĠĠĠ Ġ} Ċ Ċ internal Ġval ĠContext . app Signatures Fingerprint String : ĠString ĊĠĠĠ Ġget () Ġ= Ġapp Signatures Fingerprint ĊĠĠĠĠĠĠĠ Ġ. take If Ġ{ Ġit . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĠBase 6 4 . encode ToString ( it , ĠBase 6 4 . DEFAULT ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ" unknown " Ċ Ċ internal Ġval ĠContext . is Tablet ĊĠĠĠ Ġget () Ġ= Ġresources . getBoolean ( R . bool . ym _ is Tablet ) Ċ