package Ġcom . smart ad server . android . library . medi ation Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġcom . google . android . gms . ads . medi ation .* Ċ import Ġcom . smart ad server . android . cores dk . util . SC S Configuration Ċ import Ġcom . smart ad server . android . library . model . SAS Ad Placement Ċ import Ġcom . smart ad server . android . library . util . SAS Configuration Ċ import Ġcom . smart ad server . android . library . util . SAS Library Info Ċ Ċ /** Ċ Ġ* ĠBase Ġclass Ġof Ġall Ġother ĠSAS Custom Event Ġadapters . ĠHandle Ġthe ĠSDK Ġconfiguration . Ċ Ġ*/ Ċ object ĠSAS G MAC ustom Event Util Ġ{ ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġval ĠMED I ATION _ EX TR AS _ SM ART _ KEYWORD _ TARGET ING _ KEY : ĠString Ġ= Ġ" smart _ keyword _ target ing " ĊĊĠĠĠ Ġ// Ġversion Ġinfo Ġneeded Ġby Ġgoogle Ġclasses , Ġinit Ġin Ġa Ġstatic Ġblock ĊĠĠĠ Ġprivate Ġvar Ġadapter VersionInfo : ĠVersion Info ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsdk VersionInfo : ĠVersion Info ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConfigure Ġthe ĠSmart ĠDisplay ĠSDK Ġif Ġneeded Ġand ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠĠĠĠĠĠĠĠ ĠThe Ġapplication Ġcontext . ĊĠĠĠĠ Ġ* Ġ@ param Ġplacement String ĠThe ĠSmart Ġplacement ĠString . ĊĠĠĠĠ Ġ* Ġ@ param Ġmedi ation Extras Ġa ĠBundle Ġcontaining Ġmedi ation Ġextra Ġparameters Ġas Ġpassed Ġto Ġthe ĠGoogle ĠAd Request Ġin Ġthe Ġapplication ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġvalid ĠSAS Ad Placement , Ġor Ġnull Ġif Ġthe ĠSDK Ġcan Ġnot Ġbe Ġconfigured Ġor Ġif Ġthe Ġplacement Ġstring Ġis Ġwrong ly Ġset . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġconfigure SDK AndGet Ad Placement ( context : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplacement String : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedi ation Extras : ĠBundle ?): ĠSAS Ad Placement ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsite Id : ĠInt Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġvar Ġpage Id : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġformat Id : ĠInt Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġvar Ġtargeting : ĠString Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġ// Ġtokenize Ġplacement Ġstring Ġand Ġfill Ġad Placement ; ĊĠĠĠĠĠĠĠ Ġval Ġids Ġ= Ġplacement String . split ("/") ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsite Id Ġ= Ġids . get ( 0 ). trim (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Id Ġ= Ġids . get ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformat Id Ġ= Ġids . get ( 2 ). trim (). toInt () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġinvalid Ġplacement , Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġconfigure Ġthe ĠSmart ĠAd ĠServer ĠSDK Ġif Ġnecessary ĊĠĠĠĠĠĠĠ Ġif Ġ(! SAS Configuration . get Shared Instance (). is Configured ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( site Id Ġ>= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSAS Configuration . get Shared Instance (). configure ( context , Ġsite Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSAS Configuration . get Shared Instance (). is Primary Sdk Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠS CS Configuration . ConfigurationException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġextract Ġcustom Ġtargeting Ġfrom Ġmedi ation Ġextras ĊĠĠĠĠĠĠĠ Ġif Ġ( medi ation Extras Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkeyword Target ing : ĠString ? Ġ= Ġmedi ation Extras . getString ( MEDI ATION _ EX TR AS _ SM ART _ KEYWORD _ TARGET ING _ KEY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( keyword Target ing Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtargeting Ġ= Ġkeyword Target ing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠSAS Ad Placement ( site Id . to Long (), Ġpage Id , Ġformat Id . to Long (), Ġtargeting ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġversion Info : ĠVersion Info ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( adapter VersionInfo ) !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġval ĠSDK VersionInfo : ĠVersion Info ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( sdk VersionInfo ) !! ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġadapters Ġversion Ġinfo ĊĠĠĠĠĠĠĠ Ġadapter VersionInfo Ġ= ĠVersion Info ( 1 , Ġ 0 , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// SDK Ġversion Ġinfo ĊĠĠĠĠĠĠĠ Ġval Ġversion Info Ġ= ĠSAS Library Info . get Shared Instance (). getVersion (). split (".") ĊĊĠĠĠĠĠĠĠ Ġ// Ġwe Ġexpect Ġ 3 Ġtokens , Ġno Ġmore , Ġno Ġless ĊĠĠĠĠĠĠĠ Ġval Ġmajor Version Ġ= Ġversion Info . get OrNull ( 0 )?. toInt OrNull () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġminor Version Ġ= Ġversion Info . get OrNull ( 1 )?. toInt OrNull () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġmicro Version Ġ= Ġversion Info . get OrNull ( 1 )?. toInt OrNull () Ġ?: Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġsdk VersionInfo Ġ= ĠVersion Info ( major Version , Ġminor Version , Ġmicro Version ) ĊĠĠĠ Ġ} Ċ }