package Ġcom . ter west en . gab riel . user _ messaging _ platform Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroidx . annotation . NonNull Ċ import Ġcom . google . android . ump .* Ċ Ċ import Ġio . flutter . embedding . engine . plugins . Flutter Plugin Ċ import Ġio . flutter . embedding . engine . plugins . activity . Activity Aware Ċ import Ġio . flutter . embedding . engine . plugins . activity . Activity Plugin Binding Ċ import Ġio . flutter . plugin . common . MethodCall Ċ import Ġio . flutter . plugin . common . Method Channel Ċ import Ġio . flutter . plugin . common . Method Channel . MethodCall Handler Ċ import Ġio . flutter . plugin . common . Method Channel . Result Ċ Ċ /** ĠUser Messaging Platform Plugin Ġ*/ Ċ class ĠUser Messaging Platform Plugin Ġ: ĠFlutter Plugin , ĠActivity Aware , ĠMethod Call Handler Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġchannel : ĠMethod Channel ĊĠĠĠ Ġprivate Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġactivity : ĠActivity ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Engine (@ NonNull Ġflutter Plugin Binding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchannel Ġ= ĠMethod Channel ( flutter Plugin Binding . binary Messenger , Ġ" com . ter west en . gab riel / user _ messaging _ platform ") ĊĠĠĠĠĠĠĠ Ġchannel . set MethodCall Handler ( this ) ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġflutter Plugin Binding . application Context ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Engine (@ NonNull Ġbinding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchannel . set MethodCall Handler ( null ) ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Activity ( binding : ĠActivity Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Ġ= Ġbinding . activity ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Activity For Config Changes () Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Re attached To Activity For Config Changes ( binding : ĠActivity Plugin Binding ) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Activity () Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon MethodCall (@ NonNull Ġcall : ĠMethod Call , Ġ@ NonNull Ġresult : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( call . method ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" get Consent Info " Ġ-> Ġsend Consent Info ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" request Consent Info Update " Ġ-> Ġrequest Consent Info Update ( call . arguments , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" show Consent Form " Ġ-> Ġshow Consent Form ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" reset Consent Info " Ġ-> Ġreset Consent Info ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġresult . not Implemented () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġconsent Information ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠUser Messaging Platform . get Consent Information ( context ) !! ĊĊĠĠĠ Ġprivate Ġfun Ġrequest Consent Info Update ( arguments : ĠAny ?, Ġresult : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġparse Consent Request Parameters ( arguments , Ġcontext !! ) ĊĊĠĠĠĠĠĠĠ Ġconsent Information . request Consent Info Update ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġsend Consent Info ( result ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġhandle Form Error ( result , Ġit ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Consent Form ( result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ ĠUser Messaging Platform . load Consent Form ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġform Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform . show ( activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġsend Consent Info ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġhandle Form Error ( result , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġhandle Form Error ( result , Ġit ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreset Consent Info ( result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconsent Information . reset () ĊĠĠĠĠĠĠĠ Ġresult . success ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Consent Info ( result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . success ( serialize Content Info ( consent Information )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Form Error ( result : ĠResult , Ġit : ĠForm Error ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . error ( serialize Form ErrorCode ( it . errorCode ), Ġit . message , Ġnull ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġserialize Content Info ( consent Information : ĠCon sent Information ): ĠMap < String , ĠString > Ġ= ĊĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" consent Status " Ġto Ġserialize Consent Status ( consent Information . consent Status ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" form Status " Ġto Ġserialize Form Status ( consent Information ) ĊĠĠĠĠĠĠĠ Ġ) Ċ Ċ private Ġfun Ġserialize Consent Status ( consent Status : ĠInt ): ĠString Ġ= Ġwhen Ġ( consent Status ) Ġ{ ĊĠĠĠ ĠCon sent Information . Consent Status . UNKNOWN Ġ-> Ġ" unknown " ĊĠĠĠ ĠCon sent Information . Consent Status . NOT _ REQUIRED Ġ-> Ġ" not Required " ĊĠĠĠ ĠCon sent Information . Consent Status . REQUIRED Ġ-> Ġ" required " ĊĠĠĠ ĠCon sent Information . Consent Status . OB TAIN ED Ġ-> Ġ" obt ained " ĊĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Unknown ĠCon sent Status : Ġ$ consent Status ") Ċ } Ċ Ċ private Ġfun Ġserialize Form Status ( consent Information : ĠCon sent Information ): ĠString Ġ= Ġwhen Ġ{ ĊĠĠĠ Ġconsent Information . is Consent Form Available Ġ-> Ġ" available " ĊĠĠĠ Ġelse Ġ-> Ġ" un available " Ċ } Ċ Ċ private Ġfun Ġserialize Form ErrorCode ( errorCode : ĠInt ): ĠString Ġ= Ġwhen Ġ( errorCode ) Ġ{ ĊĠĠĠ ĠForm Error . ErrorCode . INTERNAL _ ERROR Ġ-> Ġ" internal " ĊĠĠĠ ĠForm Error . ErrorCode . INTER NET _ ERROR Ġ-> Ġ" network " ĊĠĠĠ ĠForm Error . ErrorCode . INVALID _ OPERATION Ġ-> Ġ" invalid Operation " ĊĠĠĠ ĠForm Error . ErrorCode . TIME _ OUT Ġ-> Ġ" timeout " ĊĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Unknown ĠForm ErrorCode : Ġ$ errorCode ") Ċ } Ċ Ċ private Ġfun Ġparse Consent Request Parameters ( parameters : ĠAny ?, Ġcontext : ĠContext ): ĠCon sent Request Parameters Ġ{ ĊĠĠĠ Ġval Ġparameters Builder Ġ= ĠCon sent Request Parameters . Builder () ĊĊĠĠĠ Ġif Ġ( parameters Ġis ĠMap < *, Ġ* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġparameters [" tag For Under Age Of Consent "] ?. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Builder . setTag For Under Age Of Consent ( it Ġas ĠBoolean ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġparameters [" debug Settings "] ?. let Ġ{ Ġit Ġas ĠMap < *, Ġ*> Ġ} ?. also Ġ{ Ġdebug Settings Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdebug Settings Builder Ġ= ĠCon sent Debug Settings . Builder ( context ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Settings [" test Device Ids "] ?. let Ġ{ Ġit Ġas ĠList < *> Ġ} ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Settings Builder . add Test Device Has hed Id ( it Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Settings [" geo graphy "] ?. let Ġ{ Ġparse Debug Geo graphy ( it Ġas ĠString ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . also Ġ{ Ġdebug Settings Builder . set Debug Geo graphy ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Builder . set Consent Debug Settings ( debug Settings Builder . build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġparameters Builder . build () Ċ } Ċ Ċ private Ġfun Ġparse Debug Geo graphy ( debug Geo graphy : ĠString ): ĠInt Ġ= Ġwhen Ġ( debug Geo graphy ) Ġ{ ĊĠĠĠ Ġ" disabled " Ġ-> ĠCon sent Debug Settings . Debug Geo graphy . DEBUG _ GEO GR AP HY _ DISABLED ĊĠĠĠ Ġ" not EE A " Ġ-> ĠCon sent Debug Settings . Debug Geo graphy . DEBUG _ GEO GR AP HY _ NOT _ EE A ĊĠĠĠ Ġ" EE A " Ġ-> ĠCon sent Debug Settings . Debug Geo graphy . DEBUG _ GEO GR AP HY _ EE A ĊĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Unknown ĠDebug Geo graphy : Ġ$ debug Geo graphy ") Ċ }