package Ġcom . test . hu awei . ads . m op ub _ medi ation _ library Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . View Ċ import Ġcom . test . hu awei . ads . m op ub _ medi ation _ library . utils . Hu awei Ads Custom EventData Keys Ċ import Ġcom . hu awei . h ms . ads .* Ċ import Ġcom . hu awei . h ms . ads . banner . Banner View Ċ import Ġcom . m op ub . common . Lifecycle Listener Ċ import Ġcom . m op ub . common . Preconditions Ċ import Ġcom . m op ub . common . logging . Mo Pub Log Ċ import Ġcom . m op ub . common . logging . Mo Pub Log . Adapter Log Event Ċ import Ġcom . m op ub . common . util . Views Ċ import Ġcom . m op ub . mobile ads . Ad Data Ċ import Ġcom . m op ub . mobile ads . Base Ad Ċ import Ġcom . m op ub . mobile ads . Mo Pub ErrorCode Ċ Ċ class Ġbanner : ĠBase Ad () Ġ{ ĊĠĠĠ Ġval ĠAD _ UNIT _ ID _ KEY Ġ= ĠHu awei Ads Custom EventData Keys . AD _ UNIT _ ID _ KEY ĊĠĠĠ Ġval ĠCONTENT _ URL _ KEY Ġ= ĠHu awei Ads Custom EventData Keys . CONTENT _ URL _ KEY ĊĠĠĠ Ġval ĠTAG _ FOR _ CHILD _ DIRECT ED _ KEY Ġ= ĠHu awei Ads Custom EventData Keys . TAG _ FOR _ CHILD _ DIRECT ED _ KEY ĊĠĠĠ Ġval ĠTAG _ FOR _ UNDER _ AGE _ OF _ CON SENT _ KEY Ġ= ĊĠĠĠĠĠĠĠ ĠHu awei Ads Custom EventData Keys . TAG _ FOR _ UNDER _ AGE _ OF _ CON SENT _ KEY ĊĠĠĠ Ġval ĠAD AP TER _ NAME Ġ= Ġbanner :: class . java . simple Name ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Hu awei Ad View : ĠBanner View ĊĠĠĠ Ġprivate Ġvar Ġm Ad Unit Id : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġad Width : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġad Height : ĠInt ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġload ( context : ĠContext , Ġad Data : ĠAd Data ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPreconditions . checkNotNull ( context ) ĊĠĠĠĠĠĠĠ ĠPreconditions . checkNotNull ( ad Data ) ĊĠĠĠĠĠĠĠ Ġad Width Ġ= Ġad Data . ad Width ĊĠĠĠĠĠĠĠ Ġad Height Ġ= Ġad Data . ad Height ĊĠĠĠĠĠĠĠ Ġval Ġextras Ġ= Ġad Data . extras ĊĠĠĠĠĠĠĠ Ġm Ad Unit Id Ġ= Ġextras [ AD _ UNIT _ ID _ KEY ] ĊĊĠĠĠĠĠĠĠ Ġm Hu awei Ad View Ġ= ĠBanner View ( context ) ĊĠĠĠĠĠĠĠ Ġm Hu awei Ad View . ad Listener Ġ= ĠAd View Listener () ĊĠĠĠĠĠĠĠ Ġm Hu awei Ad View . ad Id Ġ= Ġm Ad Unit Id ĊĊĠĠĠĠĠĠĠ Ġval Ġad Size : ĠBanner Ad Size ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ad Width Ġ== Ġnull Ġ|| Ġad Height Ġ== Ġnull Ġ|| Ġad Width !! Ġ<= Ġ 0 Ġ|| Ġad Height !! Ġ<= Ġ 0 ) Ġnull Ġelse ĠBanner Ad Size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Width !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Height !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( ad Size Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Hu awei Ad View . banner Ad Size Ġ= Ġad Size ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Network Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAdapter Log Event . LOAD _ FAILED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAD AP TER _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub ErrorCode . NETWORK _ NO _ FILL . int Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub ErrorCode . NETWORK _ NO _ FILL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Load Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Load Listener . on Ad Load Failed ( Mo Pub ErrorCode . NETWORK _ NO _ FILL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAd Param . Builder () ĊĠĠĠĠĠĠĠ Ġbuilder . setRequest Origin (" Mo Pub ") ĊĊĠĠĠĠĠĠĠ Ġval Ġcontent Url Ġ= Ġextras [ CONTENT _ URL _ KEY ] ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( content Url )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setTarget ing Content Url ( content Url ) ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġforward N pa If Set ( builder ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Configuration Builder Ġ= ĠH w Ads . getRequest Options (). to Builder () ĊĊĠĠĠĠĠĠĠ Ġval Ġchild Direct ed Ġ= Ġextras [ TAG _ FOR _ CHILD _ DIRECT ED _ KEY ] ĊĠĠĠĠĠĠĠ Ġif Ġ( child Direct ed Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( java . lang . Boolean . parse Boolean ( child Direct ed )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Configuration Builder . setTag For Child Protection ( Tag For Child . TAG _ FOR _ CHILD _ PRO TE CTION _ TRUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Configuration Builder . setTag For Child Protection ( Tag For Child . TAG _ FOR _ CHILD _ PRO TE CTION _ FALSE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Configuration Builder . setTag For Child Protection ( Tag For Child . TAG _ FOR _ CHILD _ PRO TE CTION _ UNSPECIFIED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠPublish ers Ġmay Ġwant Ġto Ġmark Ġtheir Ġrequests Ġto Ġreceive Ġtreatment Ġfor Ġusers Ġin Ġthe ĊĠĠĠĠĠĠĠ Ġ// ĠEuropean ĠEconom ic ĠArea Ġ( EE A ) Ġunder Ġthe Ġage Ġof Ġconsent . ĊĠĠĠĠĠĠĠ Ġval Ġunder Age Of Consent Ġ= Ġextras [ TAG _ FOR _ UNDER _ AGE _ OF _ CON SENT _ KEY ] ĊĠĠĠĠĠĠĠ Ġif Ġ( under Age Of Consent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( java . lang . Boolean . parse Boolean ( under Age Of Consent )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Configuration Builder . setTag For Under Age Of Promise ( Under Age . PRO MI SE _ TRUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Configuration Builder . setTag For Under Age Of Promise ( Under Age . PRO MI SE _ FALSE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Configuration Builder . setTag For Under Age Of Promise ( Under Age . PRO MI SE _ UNSPECIFIED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġrequest Configuration Ġ= Ġrequest Configuration Builder . build () ĊĠĠĠĠĠĠĠ ĠH w Ads . setRequest Options ( request Configuration ) ĊĠĠĠĠĠĠĠ Ġval Ġad Request Ġ= Ġbuilder . build () ĊĠĠĠĠĠĠĠ Ġm Hu awei Ad View . load Ad ( ad Request ) ĊĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ad Network Id , Adapter Log Event . LOAD _ AT TEMP TED , ADAPTER _ NAME ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Ad View (): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Hu awei Ad View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Invalidate () Ġ{ ĊĠĠĠĠĠĠĠ ĠViews . remove From Parent ( m Hu awei Ad View ) ĊĠĠĠĠĠĠĠ Ġm Hu awei Ad View . ad Listener Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġm Hu awei Ad View . destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Lifecycle Listener (): ĠLifecycle Listener ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Ad Network Id (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( m Ad Unit Id Ġ== Ġnull ) Ġ"" Ġelse Ġm Ad Unit Id !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcheck And Initialize Sdk ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlauncher Activity : ĠActivity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġad Data : ĠAd Data ĊĠĠĠ Ġ): Ġkotlin . Boolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠAd View Listener : ĠAd Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Closed () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Ad Closed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Failed ( load Ad Error : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ad Network Id , ĠAdapter Log Event . LOAD _ FAILED , ĠAD AP TER _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Mo Pub ErrorCode ( load Ad Error ) !!. int Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Mo Pub ErrorCode ( load Ad Error )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ad Network Id , ĠAdapter Log Event . CUSTOM , ĠAD AP TER _ NAME , Ġ" Failed Ġto Ġload ĠHu awei Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" b anners Ġwith Ġmessage : Ġ" Ġ+ Ġload Ad Error Ġ+ Ġ". ĠCause d Ġby : Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Ad Error ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Load Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Load Listener . on Ad Load Failed ( get Mo Pub ErrorCode ( load Ad Error ) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Leave () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Ad Leave () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Opened () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ad Network Id , ĠAdapter Log Event . CLICK ED , ĠAD AP TER _ NAME ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Interaction Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Interaction Listener . on Ad Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Loaded () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreceived Width : ĠInt Ġ= Ġm Hu awei Ad View . banner Ad Size . width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreceived Height : ĠInt Ġ= Ġm Hu awei Ad View . banner Ad Size . height ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( received Width Ġ> Ġad Width !! Ġ|| Ġreceived Height Ġ> Ġad Height !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ad Network Id , ĠAdapter Log Event . LOAD _ FAILED , ĠAD AP TER _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub ErrorCode . NETWORK _ NO _ FILL . int Code , ĠMo Pub ErrorCode . NETWORK _ NO _ FILL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ad Network Id , ĠAdapter Log Event . CUSTOM , ĠAD AP TER _ NAME , Ġ" Hu awei Ġserved Ġan Ġad Ġbut " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġit Ġwas Ġinvalid ated Ġbecause Ġits Ġsize Ġof Ġ" Ġ+ Ġreceived Width Ġ+ Ġ" Ġx Ġ" Ġ+ Ġreceived Height Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġexceeds Ġthe Ġpublisher - specified Ġsize Ġof Ġ" Ġ+ Ġad Width Ġ+ Ġ" Ġx Ġ" Ġ+ Ġad Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Load Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Load Listener . on Ad Load Failed ( get Mo Pub ErrorCode ( Mo Pub ErrorCode . NETWORK _ NO _ FILL . int Code ) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ad Network Id , ĠAdapter Log Event . LOAD _ SUCCESS , ĠAD AP TER _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ad Network Id , ĠAdapter Log Event . SHOW _ AT TEMP TED , ĠAD AP TER _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ad Network Id , ĠAdapter Log Event . SHOW _ SUCCESS , ĠAD AP TER _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Load Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Load Listener . on Ad Loaded () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Clicked () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMo Pub Log . log ( ad Network Id , ĠAdapter Log Event . CLICK ED , ĠAD AP TER _ NAME ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Interaction Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Interaction Listener . on Ad Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Imp ression () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Ad Imp ression () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Mo Pub ErrorCode ( error : ĠInt ): ĠMo Pub ErrorCode ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAd Param . ErrorCode . INNER Ġ-> ĠMo Pub ErrorCode . INTERNAL _ ERROR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAd Param . ErrorCode . INVALID _ REQUEST Ġ-> ĠMo Pub ErrorCode . ADAPTER _ CONFIGURATION _ ERROR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAd Param . ErrorCode . NETWORK _ ERROR Ġ-> ĠMo Pub ErrorCode . NO _ CONNECTION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAd Param . ErrorCode . NO _ AD Ġ-> ĠMo Pub ErrorCode . NO _ FILL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠMo Pub ErrorCode . UNSPECIFIED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }