/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 . ĠExplo re Ġin ĠH MS . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* Ġ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 . hm scl . hu awei . ads . medi ation _ adapter _ m op ub Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . View Ċ import Ġcom . hm scl . hu awei . ads . medi ation _ adapter _ m op ub . native _ advanced . Companion . HTTPS _ TAG Ċ import Ġcom . hm scl . hu awei . ads . medi ation _ adapter _ m op ub . native _ advanced . Companion . HTTP _ TAG Ċ import Ġcom . hm scl . hu awei . ads . medi ation _ adapter _ m op ub . utils .* Ċ import Ġcom . hm scl . hu awei . ads . medi ation _ adapter _ m op ub . utils . Hu awei Ads Custom EventData Keys . Companion . CONTENT _ URL _ KEY Ċ import Ġcom . hm scl . hu awei . ads . medi ation _ adapter _ m op ub . utils . Hu awei Ads Custom EventData Keys . Companion . KEY _ EXPERIMENT AL _ EXTRA _ SWAP _ M ARG INS Ċ import Ġcom . hm scl . hu awei . ads . medi ation _ adapter _ m op ub . utils . Hu awei Ads Custom EventData Keys . Companion . KEY _ EXTRA _ AD _ CHO ICES _ PLACE MENT Ċ import Ġcom . hm scl . hu awei . ads . medi ation _ adapter _ m op ub . utils . Hu awei Ads Custom EventData Keys . Companion . KEY _ EXTRA _ OR IENTATION _ PREFER ENCE Ċ import Ġcom . hu awei . h ms . ads .* Ċ import Ġcom . hu awei . h ms . ads . native ad . Native Ad Ċ import Ġcom . hu awei . h ms . ads . native ad . Native Ad Configuration Ċ import Ġcom . hu awei . h ms . ads . native ad . Native Ad Loader Ċ import Ġcom . m op ub . common . Preconditions Ċ import Ġcom . m op ub . common . logging . Mo Pub Log Ċ import Ġcom . m op ub . native ads . Custom Event Native Ċ import Ġcom . m op ub . native ads . Native ErrorCode Ċ import Ġcom . m op ub . native ads . Native Image Helper Ċ import Ġcom . m op ub . native ads . Static Native Ad Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . atomic . Atomic Boolean Ċ Ċ class Ġnative _ basic Ġ: ĠCustom Event Native () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠKEY _ EXTRA _ AD _ UNIT _ ID Ġ= ĠHu awei Ads Custom EventData Keys . AD _ UNIT _ ID _ KEY ĊĠĠĠ Ġprivate Ġval ĠAD AP TER _ NAME Ġ= Ġnative _ advanced :: class . java . simple Name ĊĠĠĠ Ġprivate Ġval Ġs IsInitialized Ġ= ĠAtomic Boolean ( false ) ĊĠĠĠ Ġprivate Ġvar Ġm Ad Unit Id : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Hu awei Adapter Configuration Ġ= ĠHu awei Ads Adapter Configuration () ĊĊĠĠĠ Ġoverride Ġfun Ġload Native Ad ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Event Native Listener : ĠCustom Event Native Listener , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Extras : ĠMap < String ?, ĠAny ? >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserver Extras : ĠMap < String , ĠString > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPreconditions . checkNotNull ( context ) ĊĠĠĠĠĠĠĠ ĠPreconditions . checkNotNull ( custom Event Native Listener ) ĊĠĠĠĠĠĠĠ ĠPreconditions . checkNotNull ( local Extras ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! s IsInitialized . get AndSet ( true )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠH w Ads . init ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Ad Unit Id Ġ= Ġserver Extras [ KEY _ EXTRA _ AD _ UNIT _ ID ] ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( m Ad Unit Id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Event Native Listener . on Native Ad Failed ( Native ErrorCode . NETWORK _ NO _ FILL ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Ad Network Id (), ĠMo Pub Log . Adapter Log Event . LOAD _ FAILED , ĠAD AP TER _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNative ErrorCode . NETWORK _ NO _ FILL . int Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNative ErrorCode . NETWORK _ NO _ FILL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnative Ad Ġ= ĠHu awei Native Ad ( custom Event Native Listener ) ĊĠĠĠĠĠĠĠ Ġnative Ad . load Ad ( context , Ġm Ad Unit Id , Ġlocal Extras , Ġserver Extras ) ĊĠĠĠĠĠĠĠ Ġm Hu awei Adapter Configuration . set Cached Initialization Parameters ( context , Ġserver Extras ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠHu awei Native Ad ( private Ġvar Ġm Custom Event Native Listener : ĠCustom Event Native Listener ?) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatic Native Ad () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġshould Swap Margins Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġhu awei Native Ad : ĠNative Ad ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun Ġload Ad ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Unit Id : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Extras : ĠMap < String ?, ĠAny ? >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Extras : ĠMap < String , ĠString > ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠNative Ad Loader . Builder ( context , Ġad Unit Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġ 9 / 1 4 / 2 0 2 1 ĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( local Extras . containsKey ( KEY _ EXPERIMENT AL _ EXTRA _ SWAP _ M ARG INS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġswap Margin Extra Ġ= Ġlocal Extras [ KEY _ EXPERIMENT AL _ EXTRA _ SWAP _ M ARG INS ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( swap Margin Extra Ġis ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould Swap Margins Ġ= Ġswap Margin Extra ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Builder Ġ= ĠNative Ad Configuration . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Builder . setRequest Multi Images ( false ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġorientation Ġof Ġan Ġad Ġimage ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġhttps :// developer . hu awei . com / consumer / en / doc / development / H MS - Plugin - References - V 1 / native ad - cfg - builder - 0 0 0 0 0 0 1 0 5 0 2 9 8 6 0 6 - V 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( local Extras . containsKey ( KEY _ EXTRA _ OR IENTATION _ PREFER ENCE ) Ġ&& ĠisValid Orientation Extra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Extras [ KEY _ EXTRA _ OR IENTATION _ PREFER ENCE ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Builder . set Media Direction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Extras [ KEY _ EXTRA _ OR IENTATION _ PREFER ENCE ]. toString (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( server Extras . containsKey ( KEY _ EXTRA _ OR IENTATION _ PREFER ENCE ) Ġ&& ĠisValid Orientation Extra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Extras [ KEY _ EXTRA _ OR IENTATION _ PREFER ENCE ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Builder . set Media Direction ( server Extras [ KEY _ EXTRA _ OR IENTATION _ PREFER ENCE ] !!. toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe ĠAd Choices Ġicon Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġhttps :// developer . hu awei . com / consumer / en / doc / development / H MS - Plugin - References - V 1 / native ad - cfg - builder - 0 0 0 0 0 0 1 0 5 0 2 9 8 6 0 6 - V 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( local Extras . containsKey ( KEY _ EXTRA _ AD _ CHO ICES _ PLACE MENT ) Ġ&& ĠisValid Ad Choices Placement Extra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Extras [ KEY _ EXTRA _ AD _ CHO ICES _ PLACE MENT ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Builder . set Choices Position ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Extras [ KEY _ EXTRA _ AD _ CHO ICES _ PLACE MENT ]. toString (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( server Extras . containsKey ( KEY _ EXTRA _ AD _ CHO ICES _ PLACE MENT ) Ġ&& ĠisValid Ad Choices Placement Extra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Extras [ KEY _ EXTRA _ AD _ CHO ICES _ PLACE MENT ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Builder . set Choices Position ( server Extras [ KEY _ EXTRA _ AD _ CHO ICES _ PLACE MENT ] !!. toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġad Options Ġ= Ġoptions Builder . build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġad Loader Ġ= Ġbuilder . set Native Ad Loaded Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! isValid Hu awei Native Ad ( it )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Ad Network Id (), ĠMo Pub Log . Adapter Log Event . CUSTOM , ĠAD AP TER _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" The ĠHu awei Ġnative Ġunified Ġad Ġis Ġmissing Ġone Ġor Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" more Ġrequired Ġassets , Ġfailing Ġrequest ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Custom Event Native Listener !!. on Native Ad Failed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNative ErrorCode . NETWORK _ NO _ FILL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Ad Network Id (), ĠMo Pub Log . Adapter Log Event . LOAD _ FAILED , ĠAD AP TER _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNative ErrorCode . NETWORK _ NO _ FILL . int Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNative ErrorCode . NETWORK _ NO _ FILL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhu awei Native Ad Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimages : ĠList < Image > Ġ= Ġit . images ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Urls : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Image : ĠImage Ġ= Ġimages [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Urls . add ( main Image . uri . toString (). replace ( HTTP _ TAG , ĠHTTPS _ TAG )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . icon Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicon Image : ĠImage Ġ= Ġit . icon ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAss uming Ġthat Ġthe ĠURI Ġprovided Ġis Ġan ĠURL . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Urls . add ( icon Image . uri . toString (). replace ( HTTP _ TAG , ĠHTTPS _ TAG )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpre Cache Images ( context , Ġimage Urls ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. set Ad Listener ( object Ġ: ĠAd Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Clicked () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Ad Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Ad Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( get Ad Network Id (), ĠMo Pub Log . Adapter Log Event . CLICK ED , ĠAD AP TER _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Imp ression () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Ad Imp ression () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Ad Imp ressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Ad Network Id (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . Adapter Log Event . SHOW _ SUCCESS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAD AP TER _ NAME ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Failed ( load Ad Error : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Ad Network Id (), ĠMo Pub Log . Adapter Log Event . LOAD _ FAILED , ĠAD AP TER _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNative ErrorCode . NETWORK _ NO _ FILL . int Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNative ErrorCode . NETWORK _ NO _ FILL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Ad Network Id (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . Adapter Log Event . CUSTOM , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAD AP TER _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Failed Ġto Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" load ĠHu awei Ġnative Ġad Ġwith Ġmessage : Ġ" Ġ+ Ġload Ad Error Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ". ĠCause d Ġby : Ġ" Ġ+ Ġload Ad Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( load Ad Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAd Param . ErrorCode . INNER Ġ-> Ġm Custom Event Native Listener !!. on Native Ad Failed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNative ErrorCode . NATIVE _ ADAPTER _ CONFIGURATION _ ERROR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAd Param . ErrorCode . INVALID _ REQUEST Ġ-> Ġm Custom Event Native Listener !!. on Native Ad Failed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNative ErrorCode . NETWORK _ INVALID _ REQUEST ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAd Param . ErrorCode . NETWORK _ ERROR Ġ-> Ġm Custom Event Native Listener !!. on Native Ad Failed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNative ErrorCode . CONNECTION _ ERROR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAd Param . ErrorCode . NO _ AD Ġ-> Ġm Custom Event Native Listener !!. on Native Ad Failed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNative ErrorCode . NETWORK _ NO _ FILL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġm Custom Event Native Listener !!. on Native Ad Failed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNative ErrorCode . UNSPECIFIED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). set Native Ad Options ( ad Options ). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Builder Ġ= ĠAd Param . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Builder . setRequest Origin (" Mo Pub ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPublish ers Ġmay Ġappend Ġa Ġcontent ĠURL Ġby Ġpassing Ġit Ġto Ġthe ĠMo Pub Native . set Local Extras () Ġcall . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Url Ġ= Ġlocal Extras [ CONTENT _ URL _ KEY ] Ġas ĠString ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( content Url )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Builder . setTarget ing Content Url ( content Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(! TextUtils . isEmpty ( server Extras [ CONTENT _ URL _ KEY ])) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Builder . setTarget ing Content Url ( server Extras [ CONTENT _ URL _ KEY ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠPrepare ĠChild - protection Ġkeys ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Configuration Builder Ġ= Ġprepare Builder Via Extras ( server Extras ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Configuration Ġ= Ġrequest Configuration Builder . build () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠH w Ads . setRequest Options ( request Configuration ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġad Request Ġ= Ġrequest Builder . build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġad Loader . load Ad ( ad Request ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( get Ad Network Id (), ĠMo Pub Log . Adapter Log Event . LOAD _ AT TEMP TED , ĠAD AP TER _ NAME ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġprepare ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Ad Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhu awei Native Ad ?. trigger Click ( Bundle . EMPTY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( get Ad Network Id (), ĠMo Pub Log . Adapter Log Event . CLICK ED , ĠAD AP TER _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclear ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Custom Event Native Listener Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdestroy () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhu awei Native Ad ?. destroy () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle Click ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Ad Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( get Ad Network Id (), ĠMo Pub Log . Adapter Log Event . CLICK ED , ĠAD AP TER _ NAME ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġpre Cache Images ( context : ĠContext , Ġimage Urls : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNative Image Helper . pre Cache Images ( context , Ġimage Urls , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠNative Image Helper . Image Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Images Cached () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( hu awei Native Ad Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprepare Hu awei Native Ad ( hu awei Native Ad !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Custom Event Native Listener !!. on Native Ad Loaded ( this @ Hu awei Native Ad ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Ad Network Id (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . Adapter Log Event . LOAD _ SUCCESS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAD AP TER _ NAME ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Images Failed To Cache ( errorCode : ĠNative ErrorCode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Custom Event Native Listener !!. on Native Ad Failed ( errorCode ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Ad Network Id (), ĠMo Pub Log . Adapter Log Event . LOAD _ FAILED , ĠAD AP TER _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠerrorCode . int Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠerrorCode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġprepare Hu awei Native Ad ( m Hu awei Native Ad : ĠNative Ad ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimages : ĠList < Image > Ġ= Ġm Hu awei Native Ad . images ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain ImageUrl Ġ= Ġimages [ 0 ]. uri . toString (). replace ( HTTP _ TAG , ĠHTTPS _ TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Hu awei Native Ad . icon Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġm Hu awei Native Ad . icon ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon ImageUrl Ġ= Ġicon . uri . toString (). replace ( HTTP _ TAG , ĠHTTPS _ TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall ToAction Ġ= Ġm Hu awei Native Ad . call ToAction ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġm Hu awei Native Ad . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġm Hu awei Native Ad . description ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Ad Network Id (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Ad Unit Id ĊĠĠĠ Ġ} Ċ }