/* ĠCopyright Ġ 2 0 2 2 ĠGoogle ĠLLC Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// 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 . google . map spl atform . transport ation . sample . kot l ind river . provider Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . Application Info Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġjava . lang . IllegalStateException Ċ import Ġjava . util . Objects Ċ Ċ /** ĠProvides Ġlocal Ġprovider Ġrelated Ġutilities . Ġ*/ Ċ object ĠProvider Utils Ġ{ ĊĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Provider Utils " ĊĠ Ġprivate Ġconst Ġval ĠPRO VIDER _ ID _ KEY Ġ= Ġ" com . example . driver . sample app . provider _ id " ĊĠ Ġprivate Ġconst Ġval ĠPRO VIDER _ URL _ KEY Ġ= Ġ" com . example . driver . sample app . provider _ url " ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠGets Ġprovider ĠId Ġto Ġcommunicate Ġto Ġprovider Ġserver . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ return Ġprovider Id . ĊĠĠ Ġ* Ġ@ throws ĠIllegalStateException Ġif Ġprovider Id Ġcan 't Ġbe Ġobtained . ĠThis Ġstops Ġthe Ġsample Ġapp Ġfrom ĊĠĠ Ġ* Ġfunction ing Ġcorrectly . ĊĠĠ Ġ* Ġ@ throws ĠNullPointerException Ġif Ġmanifest Ġmetadata Ġdoesn 't Ġhave Ġprovider Id Ġinfo . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġget Provider Id ( context : ĠContext ): ĠString Ġ{ ĊĠĠĠ Ġval Ġmetadata Ġ= Ġget App Metadata ( context ) ĊĠĠĠ Ġcheck ( metadata . containsKey ( PROVIDER _ ID _ KEY )) Ġ{ ĊĠĠĠĠĠ Ġ" App Ġmetadata Ġin Ġmanifest Ġdoes Ġnot Ġcontain Ġprovider ĠId ." ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġmetadata . getString ( PROVIDER _ ID _ KEY ) !! ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠGets Ġprovider Ġbase ĠURL Ġto Ġcommunicate Ġto Ġprovider Ġserver . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ return Ġprovider Id . ĊĠĠ Ġ* Ġ@ throws ĠIllegalStateException Ġif Ġprovider Ġbase ĠURL Ġcan 't Ġbe Ġobtained . ĠThis Ġstops Ġthe Ġsample Ġapp ĊĠĠ Ġ* Ġfrom Ġfunction ing Ġcorrectly . ĊĠĠ Ġ* Ġ@ throws ĠNullPointerException Ġif Ġmanifest Ġmetadata Ġdoesn 't Ġhave Ġprovider Ġbase ĠURL Ġinfo . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġget Provider BaseUrl ( context : ĠContext ): ĠString Ġ{ ĊĠĠĠ Ġval Ġmetadata Ġ= Ġget App Metadata ( context ) ĊĠĠĠ Ġcheck ( metadata . containsKey ( PROVIDER _ URL _ KEY )) Ġ{ ĊĠĠĠĠĠ Ġ" App Ġmetadata Ġin Ġmanifest Ġdoes Ġnot Ġcontain Ġprovider Ġbase ĠURL ." ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġmetadata . getString ( PROVIDER _ URL _ KEY ) !! ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget App Metadata ( context : ĠContext ): ĠBundle Ġ{ ĊĠĠĠ Ġval ĠpackageName Ġ= Ġcontext . packageName ĊĠĠĠ Ġval Ġapplication Info : ĠApplication Info ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠ Ġapplication Info Ġ= ĊĠĠĠĠĠĠĠ Ġcontext . package Manager . getApplication Info ( packageName , ĠPackage Manager . GET _ META _ DATA ) ĊĠĠĠĠĠ Ġapplication Info . metaData ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĠĠĠĠĠ ĠLog . e ( TAG , Ġ" Cannot Ġfind ĠManifest Ġmetadata Ġin Ġpackage Ġ: Ġ$ packageName ") ĊĠĠĠĠĠ Ġthrow ĠIllegalStateException ( e ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ