/* Ċ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 2 0 ĠC rite o Ċ Ġ* Ċ Ġ* ĠĠĠ Ġ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 . c rite o . publisher . integration Ċ Ċ import Ġandroid . content . SharedPreferences Ċ import Ġcom . c rite o . publisher . annotation . Open ForTesting Ċ import Ġcom . c rite o . publisher . util . Preconditions Util Ċ import Ġcom . c rite o . publisher . util . Safe SharedPreferences Ċ Ċ @ Open ForTesting Ċ class ĠIntegration Registry ( ĊĠĠĠ Ġprivate Ġval Ġshared Preferences : ĠSharedPreferences , ĊĠĠĠ Ġprivate Ġval Ġintegration Detector : ĠIntegration Detector Ċ ) Ġ{ ĊĊĠ Ġprivate Ġval Ġsafe SharedPreferences Ġ= ĠSafe SharedPreferences ( shared Preferences ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠProfile ĠID Ġused Ġby Ġthe ĠSDK , Ġso ĠC DB Ġand Ġthe ĠSup ply Ġchain Ġcan Ġrecognize Ġthat Ġthe Ġrequest Ġcomes ĊĠĠ Ġ* Ġfrom Ġthe ĠPublisher SDK . ĊĠĠ Ġ*/ ĊĠ Ġval Ġprofile Id : ĠInt ĊĠĠĠ Ġget () Ġ= Ġread Integration (). profile Id ĊĊĠ Ġfun Ġdeclare ( integration : ĠIntegration ) Ġ{ ĊĠĠĠ Ġshared Preferences . edit () ĊĠĠĠĠĠĠĠ Ġ. putString ( Integration Storage Key , Ġintegration . name ) ĊĠĠĠĠĠĠĠ Ġ. apply () ĊĠ Ġ} ĊĊĠ Ġfun Ġread Integration (): ĠIntegration Ġ{ ĊĠĠĠ Ġdetect Med iation Integration ()?. let Ġ{ ĊĠĠĠĠĠ Ġreturn Ġit ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġintegration Name Ġ= Ġsafe SharedPreferences . getString ( ĊĠĠĠĠĠĠĠ ĠIntegration Storage Key , ĊĠĠĠĠĠĠĠ ĠIntegration . FALL BACK . name ĊĠĠĠ Ġ) !! ĊĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠ ĠIntegration . valueOf ( integration Name ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠ ĠPreconditions Util . throw Or Log ( e ) ĊĠĠĠĠĠ ĠIntegration . FALL BACK ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġdetect Med iation Integration (): ĠIntegration ? Ġ{ ĊĠĠĠ Ġval Ġmo Pub Med iation Present Ġ= Ġintegration Detector . is Mo Pub Med iation Present () ĊĠĠĠ Ġval Ġad Mob Med iation Present Ġ= Ġintegration Detector . is Ad Mob Med iation Present () ĊĊĠĠĠ Ġreturn Ġif Ġ( mo Pub Med iation Present Ġ&& Ġad Mob Med iation Present ) Ġ{ ĊĠĠĠĠĠ ĠIntegration . FALL BACK ĊĠĠĠ Ġ} Ġelse Ġif Ġ( mo Pub Med iation Present ) Ġ{ ĊĠĠĠĠĠ ĠIntegration . M OP UB _ MEDI ATION ĊĠĠĠ Ġ} Ġelse Ġif Ġ( ad Mob Med iation Present ) Ġ{ ĊĠĠĠĠĠ ĠIntegration . AD MOB _ MEDI ATION ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġconst Ġval ĠIntegration Storage Key Ġ= Ġ" C rite o Cached Integration " ĊĠ Ġ} Ċ } Ċ