package Ġcom . li ang z emu . ad . sea . helper . use less Ċ Ċ // package Ġcom . li ang z emu . ad . sea . helper Ċ // Ċ // import Ġandroidx . annotation . NonNull Ċ // import Ġcom . facebook . ads . Ad Ċ // import Ġcom . facebook . ads . Ad Error Ċ // import Ġcom . google . android . gms . ads . Ad Request Ċ // import Ġcom . google . android . gms . ads . Mobile Ads Ċ // import Ġcom . google . android . gms . ads . reward . Reward Item Ċ // import Ġcom . google . android . gms . ads . reward . Rew arded Video Ad Ċ // import Ġcom . google . android . gms . ads . reward . Rew arded Video Ad Listener Ċ // import Ġcom . li ang z emu . ad . sea . Ad Base Ċ // import Ġcom . li ang z emu . ad . sea . R Ċ // import Ġcom . li ang z emu . ad . sea . To gether Ad Sea Ċ // import Ġcom . li ang z emu . ad . sea . To gether Ad Sea . context Ċ // import Ġcom . li ang z emu . ad . sea . other .* Ċ // Ċ // Ċ // /** Ċ // Ġ* Ġ( âĹ ı ï ¾ Ł Ïī ï ¾ Ł âĹ ı ) Ġæ ¿ Ģ åĬ ± è§Ĩé¢ĳ å¹¿åĳĬ ï¼ļ å·² å®ŀçİ° æ¡£ ä½į Ċ // Ġ* Ċ // Ġ* ĠCreated Ġby ĠMat thew _ Ch en Ġon Ġ 2 0 1 9 - 0 6 - 0 5 . Ċ // Ġ*/ Ċ //@ Deprecated (" old ", Ġreplace With Ġ= ĠReplace With (" Reward Helper "), Ġlevel Ġ= ĠDeprec ation Level . ERROR ) Ċ // class ĠTo gether Ad Sea Reward ( val Ġad Const Str : ĠString ) Ġ: ĠAd Base Ġ{ Ċ // ĠĠĠ Ġcompanion Ġobject Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ/** Ċ // ĠĠĠĠĠĠĠĠ Ġ* Ġ åŃĺ æĶ¾ çĶ± activity ä¼łéĢĴ è¿ĩ æĿ¥çļĦ çĽĳåĲ¬ åĻ¨ Ġ é¡µéĿ¢ éĶĢ æ¯ ģ æĹ¶ éľĢè¦ģ æ¸ħ çĲĨ Ġ éģ¿åħį åĨħåŃĺ æ³ Ħ æ¼ı Ċ // ĠĠĠĠĠĠĠĠ Ġ*/ Ċ // ĠĠĠĠĠĠĠ Ġprivate Ġval Ġmultiple Rew ar Listener Map Ġ= ĠHashMap < String , ĠMultiple Rew ar Listener >() // HashMap < ad Const Str , çĽĳåĲ¬ åĻ¨ >() Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġprivate Ġvar Ġout Listener : ĠMultiple Rew ar Listener ? Ċ // ĠĠĠĠĠĠĠ Ġget () Ġ= Ġmultiple Rew ar Listener Map [ ad Const Str ] Ċ // ĠĠĠĠĠĠĠ Ġprivate Ġset ( value ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmultiple Rew ar Listener Map [ ad Const Str ] Ġ= Ġit Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġgoogle : Rew arded Video Ad Ċ // ĠĠĠĠ Ġ* Ġfacebook : Rew arded Video Ad Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġä¸į åĮº åĪĨ æ¨ ª åĲĳ çº µ åĲĳ ĠĠ Ġ ï¼ģï¼ģ ï¼ģï¼ģ æ¿Ģ åĬ ± å±ķç¤º åĲİ å¦Ĥæŀľ è¦ģ åĪłéĻ¤ ç¼ĵåŃĺ å¿ħé¡» æīĭåĬ¨ è°ĥçĶ¨ åĪłéĻ¤ Ċ // ĠĠĠĠ Ġ* Ġ@ param Ġsplash Config Str ĠString ? Ċ // ĠĠĠĠ Ġ* Ġ@ param Ġad Listener ĠAd Listener Reward Ġå¯¹ å¤ĸ çļĦ çĽĳåĲ¬ åĻ¨ Ġ è´Ł è´£ æľĢåĲİ åĽŀè°ĥ ç»Ļ çĶ¨æĪ· Ċ // ĠĠĠĠ Ġ* Ġ@ return ĠUnit Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġfun Ġrequest Ad Reward ( Ċ // ĠĠĠĠĠĠĠ Ġsplash Config Str : ĠString ?, Ċ // ĠĠĠĠĠĠĠ Ġdirection : ĠDirection Ġ= ĠDirection . HORIZONTAL , Ċ // ĠĠĠĠĠĠĠ Ġ@ NonNull Ġad Listener : ĠMultiple Rew ar Listener Ċ // ĠĠĠ Ġ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġout Listener Ġ= Ġad Listener Ċ // ĠĠĠĠĠĠĠ Ġ// è¿ĻéĩĮ éľĢè¦ģ æĽ´ æį¢ çĽĳåĲ¬ åĻ¨ Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( To gether Ad Sea . loading Ad Task [ ad Const Str ] Ġ!= Ġnull ) Ġ{// å·²ç»ı åľ¨ åĬłè½½ ä¸Ń Ġ Ġ å°± ä¸į åĨį è¯·æ±Ĥ äºĨ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge (" å·²ç»ı åľ¨ åĬłè½½ ä¸Ń Ġ è¯· çŃīå¾ħ ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġad Ġ= ĠTo gether Ad Sea . ad Cache Map [ ad Const Str ] Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ å·²ç»ı åŃĺåľ¨ ç¼ĵåŃĺ Ġ Ġ åĪĻ æĽ´æĸ° çĽĳåĲ¬ åĻ¨ Ġ Ġ åĲ¦åĪĻ éĩįæĸ° è¯·æ±Ĥ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ad Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge (" å·²ç»ı æľī ç¼ĵåŃĺ äºĨ ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Final Listener And Prepare ( ad , Ġad Listener ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġlo ge (" å¼Ģå§ĭ è¯·æ±Ĥ ") Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( direction Ġ== ĠDirection . HORIZONTAL ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ad Reward Horizontal ( splash Config Str ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ad Reward Vertical ( splash Config Str , Ġobject Ġ: ĠMultiple Rew ar Listener () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonStart Request ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Listener ?. onStart Request ( channel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Click ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Listener ?. on Ad Click ( channel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Failed ( failed Msg : ĠString ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Listener ?. on Ad Failed ( failed Msg ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Show ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Listener ?. on Ad Show ( channel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Close ( channel : ĠString , Ġis Reward : ĠBoolean ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Listener ?. on Ad Close ( channel , Ġis Reward ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Prepared ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Final Listener And Prepare ( To gether Ad Sea . ad Cache Map [ ad Const Str ], Ġout Listener ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġprivate Ġfun Ġset Final Listener And Prepare ( Ċ // ĠĠĠĠĠĠĠ Ġad : ĠAny ?, Ċ // ĠĠĠĠĠĠĠ Ġad Listener : ĠMultiple Rew ar Listener ? Ċ // ĠĠĠ Ġ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġlo ge (" åĬłè½½ å®ĮæĪĲ æĪĸèĢħ å·² æľī ç¼ĵåŃĺ ï¼Į æĽ´æĸ° çĽĳåĲ¬ åĻ¨ å¹¶ éĢļçŁ¥ å®ĮæĪĲ ") Ċ // ĠĠĠĠĠĠĠ Ġad Listener ?. let Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ad Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ad Ġis ĠRew arded Video Ad ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge (" google : æĽ´æĸ° çĽĳåĲ¬ åĻ¨ å¹¶ éĢļçŁ¥ å®ĮæĪĲ ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad . re warded Video Ad Listener Ġ= Ġad Listener Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . on Ad Prepared ( Ad Name Type . GOOGLE _ AD MOB . type ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( ad Ġis Ġcom . facebook . ads . Rew arded Video Ad ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge (" facebook : æĽ´æĸ° çĽĳåĲ¬ åĻ¨ å¹¶ éĢļçŁ¥ å®ĮæĪĲ ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad . set Ad Listener ( ad Listener ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . on Ad Prepared ( Ad Name Type . FACE BOOK . type ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġæ¨ ª åĲĳ åĪĩæį¢ Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġprivate Ġfun Ġrequest Ad Reward Horizontal ( Ċ // ĠĠĠĠĠĠĠ Ġsplash Config Str : ĠString ? Ċ // ĠĠĠ Ġ) Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// åıĸ æľĢ é«ĺ çŃī çº§ Ċ // ĠĠĠĠĠĠĠ Ġval Ġlevel Count Ġ= ĠMath . max ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . id List Google Map [ ad Const Str ]?. size Ġ?: Ġ 0 , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . id List Facebook Map [ ad Const Str ]?. size Ġ?: Ġ 0 Ċ // ĠĠĠĠĠĠĠ Ġ) Ġ- Ġ 1 Ċ // ĠĠĠĠĠĠĠ Ġvar Ġlevel Ġ= Ġ 0 Ċ // ĠĠĠĠĠĠĠ ĠTo gether Ad Sea . loading Ad Task [ ad Const Str ] Ġ= Ġlevel Count Ċ // ĠĠĠĠĠĠĠ Ġlo ge (" total Ġlevel :$ level Count Ġlevel :$ level Ġstart ") Ċ // ĠĠĠĠĠĠĠ Ġ// å¾ªçİ¯ çŃī çº§ è¯·æ±Ĥ Ċ // ĠĠĠĠĠĠĠ Ġfun Ġrequest Ad Reward By Level () Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ad Reward Vertical ( splash Config Str , Ġobject Ġ: ĠMultiple Rew ar Listener () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Show ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Listener ?. on Ad Show ( channel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Close ( channel : ĠString , Ġis Reward : ĠBoolean ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Listener ?. on Ad Close ( channel , Ġis Reward ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Prepared ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge (" To gether Ad Sea Reward Vertical : Ġlevel :$ level Ġsuccess :$ channel ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĬłè½½ å®ĮæĪĲ Ġ Ġ ç§»éĻ¤ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Final Listener And Prepare ( To gether Ad Sea . ad Cache Map [ ad Const Str ], Ġout Listener ) Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonStart Request ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Listener ?. onStart Request ( channel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Click ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Listener ?. on Ad Click ( channel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Failed ( failed Msg : ĠString ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge (" To gether Ad Sea Reward Vertical : Ġlevel :$ level Ġfailed :$ failed Msg ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( level Ġ>= Ġlevel Count ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĬłè½½ å®ĮæĪĲ Ġ Ġ ç§»éĻ¤ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . loading Ad Task . remove ( ad Const Str ) Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Listener ?. on Ad Failed ( failed Msg ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel ++ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ad Reward By Level () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġlevel ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ// å¼Ģå§ĭ è¯·æ±Ĥ Ċ // ĠĠĠĠĠĠĠ Ġrequest Ad Reward By Level () Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġ ç« ĸ åĲĳ åĪĩæį¢ Ġè¯·æ±Ĥ æ¿Ģ åĬ ± å¹¿åĳĬ Ġæł¹æį® reward Config Str éļıæľº æ¯Ķ ä¾ĭ Ċ // ĠĠĠĠ Ġ* Ġ@ param Ġreward Config Str ĠString ? Ġ Ġè¡¨ç¤º google åĴĮ facebook å¹¿åĳĬ çļĦ æ¯Ķ ä¾ĭ Ġ Ġå½ĵ æŁĲ ä¸Ģ éĥ¨åĪĨ å¹¿åĳĬ è¯·æ±Ĥ å¤±è´¥ åĲİ Ġ Ġå°Ĩ è¯¥ éĥ¨åĪĨ çļĦ key ç½® ä¸º no Ċ // ĠĠĠĠ Ġ* Ġ@ param Ġad Listener ĠAd Listener Reward Ġ çĽĳåĲ¬ åĻ¨ Ċ // ĠĠĠĠ Ġ* Ġ@ param Ġlevel ĠInt Ġ çĽ®åīį è½® æ¬¡ çŃī çº§ Ġ Ġ åıªæľī æ¨ ª åĲĳ åĪĩæį¢ çļĦæĹ¶åĢĻ éľĢè¦ģ Ġ Ġ ç« ĸ åĲĳ åĪĩæį¢ é»ĺè®¤ä¸º - 1 Ċ // ĠĠĠĠ Ġ* Ġ@ return ĠUnit Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġprivate Ġfun Ġrequest Ad Reward Vertical ( Ċ // ĠĠĠĠĠĠĠ Ġreward Config Str : ĠString ?, Ċ // ĠĠĠĠĠĠĠ Ġ@ NonNull Ġad Listener : ĠAd Listener Reward , Ċ // ĠĠĠĠĠĠĠ Ġlevel : ĠInt Ġ= Ġ- 1 Ċ // ĠĠĠ Ġ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( level Ġ== Ġ- 1 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . loading Ad Task [ ad Const Str ] Ġ= Ġ- 1 Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġval Ġrandom Ad Name Ġ= ĠAd Random Util . getRandom Ad Name ( reward Config Str ) Ċ // ĠĠĠĠĠĠĠ Ġwhen Ġ( random Ad Name ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠAd Name Type . GOOGLE _ AD MOB Ġ-> Ġrequest Ad Reward Google ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreward Config Str , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Listener Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠAd Name Type . FACE BOOK Ġ-> Ġrequest Ad Reward Facebook ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreward Config Str , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Listener Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( To gether Ad Sea . loading Ad Task [ ad Const Str ] Ġ== Ġlevel ) Ġ{// å¹¿åĳĬ åĬłè½½ å®Į æ¯ķ å¹¶ä¸Ķ å·²ç»ı æĺ¯ çĽ®æłĩ çŃī çº§ äºĨ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĬłè½½ å®ĮæĪĲ Ġ Ġ ç§»éĻ¤ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . loading Ad Task . remove ( ad Const Str ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Listener . on Ad Failed ( context . getString ( R . string . all _ ad _ error )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ( context . getString ( R . string . all _ ad _ error )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġprivate Ġfun Ġrequest Ad Reward Google ( Ċ // ĠĠĠĠĠĠĠ Ġlevel : ĠInt , Ċ // ĠĠĠĠĠĠĠ Ġreward Config Str : ĠString ?, Ċ // ĠĠĠĠĠĠĠ Ġindex Google : ĠInt , Ċ // ĠĠĠĠĠĠĠ Ġ@ NonNull Ġad Listener : ĠAd Listener Reward Ċ // ĠĠĠ Ġ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġid List Ġ= Ġif Ġ( level Ġ!= Ġ- 1 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . id List Google Map [ ad Const Str ]?. filter Indexed Ġ{ Ġindex , Ġ_ Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ== Ġindex Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . id List Google Map [ ad Const Str ] Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ// åĪĨ æ¡£ ä½į è¯·æ±Ĥ å®Į æ¯ķ Ġ Ġ éĥ½ æ²¡ å¹¿åĳĬ Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( index Google Ġ>= Ġid List ?. size Ġ?: Ġ 0 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æīĢæľī æ¡£ ä½į éĥ½ è¯·æ±Ĥ å¤±è´¥ äºĨ ï¼Į å°± åĪĩæį¢ åı¦å¤ĸ ä¸Ģç§į å¹¿åĳĬ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Reward Config Ġ= Ġreward Config Str ?. replace ( Ad Name Type . GOOGLE _ AD MOB . type , ĠAd Name Type . NO . type ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ad Reward Vertical ( new Reward Config , Ġad Listener , Ġlevel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( id List . isNull OrEmpty ()) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ åľ¨ ĠMap Ġ éĩĮéĿ¢ èİ·åıĸ ä¸įåĪ° è¯¥ å¹¿åĳĬ ä½į çļĦ Ġid List Ġæ Ħ ı åĳ³ çĿĢ åĪĿå§ĭåĮĸ çļĦæĹ¶åĢĻ æ²¡æľī è®¾ç½® è¿Ļä¸ª å¹¿åĳĬ ä½į Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ("${ Ad Name Type . GOOGLE _ AD MOB . type }: Ġ${ context . getString ( R . string . ad _ id _ no )} ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġad Listener . on Ad Failed ( context . getString ( R . string . ad _ id _ no )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġlog d ("${ Ad Name Type . GOOGLE _ AD MOB . type }: Ġ${ context . getString ( R . string . start _ request )} ") Ċ // ĠĠĠĠĠĠĠ Ġad Listener . onStart Request ( Ad Name Type . GOOGLE _ AD MOB . type ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġm Rew arded Video Ad Google Ġ= ĠMobile Ads . get Rew arded Video Ad Instance ( context ) Ċ // ĠĠĠĠĠĠĠ Ġm Rew arded Video Ad Google . re warded Video Ad Listener Ġ= Ġobject Ġ: ĠMultiple Rew ar Listener () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonStart Request ( channel : ĠString ) Ġ{} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Click ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Listener . on Ad Click ( channel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Failed ( failed Msg : ĠString ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdest ory Ad () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ("${ Ad Name Type . FACE BOOK . type }: Ġindex Google :$ index Google , ĠerrorCode :$ failed Msg ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Index Google Ġ= Ġindex Google Ġ+ Ġ 1 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ad Reward Google ( level , Ġreward Config Str , Ġnew Index Google , Ġad Listener ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Show ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Listener . on Ad Show ( channel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Close ( channel : ĠString , Ġis Reward : ĠBoolean ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Listener . on Ad Close ( channel , Ġis Rew arded ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Prepared ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . ad Cache Map [ ad Const Str ] Ġ= Ġm Rew arded Video Ad Google Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . loading Ad Task . remove ( ad Const Str ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Listener . on Ad Prepared ( channel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġm Rew arded Video Ad Google . load Ad ( id List [ index Google ], ĠAd Request . Builder (). apply Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( To gether Ad Sea . test Device ID Ġ!= Ġnull ) Ġadd Test Device ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . test Device ID Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ}. build ()) Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġprivate Ġfun Ġrequest Ad Reward Facebook ( Ċ // ĠĠĠĠĠĠĠ Ġlevel : ĠInt , Ċ // ĠĠĠĠĠĠĠ Ġreward Config Str : ĠString ?, Ċ // ĠĠĠĠĠĠĠ Ġindex Facebook : ĠInt , Ċ // ĠĠĠĠĠĠĠ Ġ@ NonNull Ġad Listener : ĠAd Listener Reward Ċ // ĠĠĠ Ġ) Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġid List Ġ= Ġif Ġ( level Ġ!= Ġ- 1 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . id List Facebook Map [ ad Const Str ]?. filter Indexed Ġ{ Ġindex , Ġ_ Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ== Ġindex Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . id List Facebook Map [ ad Const Str ] Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( index Facebook Ġ>= Ġid List ?. size Ġ?: Ġ 0 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æīĢæľī æ¡£ ä½į éĥ½ è¯·æ±Ĥ å¤±è´¥ äºĨ ï¼Į å°± åĪĩæį¢ åı¦å¤ĸ ä¸Ģç§į å¹¿åĳĬ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Reward Config Ġ= Ġreward Config Str ?. replace ( Ad Name Type . FACE BOOK . type , ĠAd Name Type . NO . type ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ad Reward Vertical ( new Reward Config , Ġad Listener , Ġlevel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( id List . isNull OrEmpty ()) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ åľ¨ ĠMap Ġ éĩĮéĿ¢ èİ·åıĸ ä¸įåĪ° è¯¥ å¹¿åĳĬ ä½į çļĦ Ġid List Ġæ Ħ ı åĳ³ çĿĢ åĪĿå§ĭåĮĸ çļĦæĹ¶åĢĻ æ²¡æľī è®¾ç½® è¿Ļä¸ª å¹¿åĳĬ ä½į Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ("${ Ad Name Type . FACE BOOK . type }: Ġ${ context . getString ( R . string . ad _ id _ no )} ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġad Listener . on Ad Failed ( context . getString ( R . string . ad _ id _ no )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġlog d ("${ Ad Name Type . FACE BOOK . type }: Ġ${ context . getString ( R . string . start _ request )} ") Ċ // ĠĠĠĠĠĠĠ Ġad Listener . onStart Request ( Ad Name Type . FACE BOOK . type ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġm Rew arded Video Ad Facebook Ġ= Ġcom . facebook . ads . Rew arded Video Ad ( context , Ġid List [ index Facebook ]) Ċ // ĠĠĠĠĠĠĠ Ġm Rew arded Video Ad Facebook . set Ad Listener ( object Ġ: ĠMultiple Rew ar Listener () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonStart Request ( channel : ĠString ) Ġ{} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Click ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Listener . on Ad Click ( channel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Failed ( failed Msg : ĠString ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdest ory Ad () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ("${ Ad Name Type . FACE BOOK . type }: Ġindex Facebook :$ index Facebook , Ġerror Msg :$ failed Msg ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Index Facebook Ġ= Ġindex Facebook Ġ+ Ġ 1 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ad Reward Facebook ( level , Ġreward Config Str , Ġnew Index Facebook , Ġad Listener ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Show ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog d ("$ channel : Ġ${ context . getString ( R . string . show )} ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Listener . on Ad Show ( channel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Close ( channel : ĠString , Ġis Reward : ĠBoolean ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Listener . on Ad Close ( channel , Ġis Rew arded ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Prepared ( channel : ĠString ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . loading Ad Task . remove ( ad Const Str ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTo gether Ad Sea . ad Cache Map [ ad Const Str ] Ġ= Ġm Rew arded Video Ad Facebook Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog d ("$ channel : Ġ${ context . getString ( R . string . prepared )} ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Listener . on Ad Prepared ( channel ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠ Ġm Rew arded Video Ad Facebook . load Ad () Ċ // Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġ çĶ¨æĿ¥ æ¸ħ éĻ¤ çĽĳåĲ¬ åĻ¨ Ġ Ġåľ¨ activity éĢĢåĩº çļĦæĹ¶åĢĻ è°ĥçĶ¨ Ċ // ĠĠĠĠ Ġ* Ġ@ return ĠUnit Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġfun Ġclear Rew ar Listener () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġmultiple Rew ar Listener Map . remove ( ad Const Str ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġad Ġ= ĠTo gether Ad Sea . ad Cache Map [ ad Const Str ] Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( ad Ġis ĠRew arded Video Ad ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ad ?. is Loaded Ġ== Ġtrue ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad ?. re warded Video Ad Listener Ġ= Ġnull Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( ad Ġis Ġcom . facebook . ads . Rew arded Video Ad ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ad ?. is Ad Loaded Ġ== Ġtrue ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad ?. set Ad Listener ( null ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* ĠåĪ¤æĸŃ æĺ¯åĲ¦ å·²ç»ı åĬłè½½ / ç¼ĵåŃĺ Ġ ä¸Ķ æľª è¿ĩ æľŁ Ċ // ĠĠĠĠ Ġ* Ġ@ return ĠBoolean Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġfun Ġis Loaded (): ĠBoolean Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġad Ġ= ĠTo gether Ad Sea . ad Cache Map [ ad Const Str ] Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( ad Ġis ĠRew arded Video Ad ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġad ?. is Loaded Ġ== Ġtrue Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( ad Ġis Ġcom . facebook . ads . Rew arded Video Ad ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġad ?. is Ad Loaded Ġ== Ġtrue Ġ&& Ġad ?. is Ad Invalid ated Ġ== Ġfalse Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġfalse Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġ éĶĢ æ¯ ģ å¹¿åĳĬ Ġ Ġ ä»ħ ä»ħ åľ¨ å¹¿åĳĬ åĬłè½½ å¤±è´¥ æĹ¶ è°ĥçĶ¨ Ċ // ĠĠĠĠ Ġ* Ġ@ return ĠUnit Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġprivate Ġfun Ġdest ory Ad () Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠTo gether Ad Sea . loading Ad Task . remove ( ad Const Str ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġad Ġ= ĠTo gether Ad Sea . ad Cache Map [ ad Const Str ] Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( ad Ġis ĠRew arded Video Ad ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġad ?. destroy ( context ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( ad Ġis Ġcom . facebook . ads . Rew arded Video Ad ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġad ?. destroy () Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ ĠTo gether Ad Sea . ad Cache Map . remove ( ad Const Str ) Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġ éĶĢ æ¯ ģ å¹¿åĳĬ åıĬ åħ¶ æīĢæľī çĽĳåĲ¬ åĻ¨ Ġ Ġ ä»ħ ä»ħ åľ¨ å¹¿åĳĬ å±ķç¤º åĲİ è¿Ľè¡Į è°ĥçĶ¨ Ċ // ĠĠĠĠ Ġ* Ġ@ return ĠUnit Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġfun Ġdest ory Ad And Listener () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġdest ory Ad () Ċ // ĠĠĠĠĠĠĠ Ġmultiple Rew ar Listener Map . remove ( ad Const Str ) Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġ æĺ¾ç¤º å¹¿åĳĬ Ċ // ĠĠĠĠ Ġ* Ġ@ return ĠBoolean Ġæĺ¯åĲ¦ æĺ¾ç¤º æĪĲåĬŁ Ġ Ġå¦Ĥæŀľ è¿ĶåĽŀ false Ġ ĠéľĢè¦ģ éĩįæĸ° load Ad Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġfun Ġshow Ad Reward (): ĠBoolean Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġloaded Ġ= Ġis Loaded () Ċ // ĠĠĠĠĠĠĠ Ġif Ġ(! loaded ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġloaded Ċ // ĠĠĠĠĠĠĠ Ġval Ġad Ġ= ĠTo gether Ad Sea . ad Cache Map [ ad Const Str ] Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( ad Ġis ĠRew arded Video Ad ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġad ?. show () Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( ad Ġis Ġcom . facebook . ads . Rew arded Video Ad ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġad ?. show () Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġtrue Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġ å®ŀçİ° ä¸īä¸ª çĽĳåĲ¬ åĻ¨ Ġ Ġ å¹¶ è¿Ľè¡Į åĲĪå¹¶ å¯¼ åĲĳ Ċ // ĠĠĠĠ Ġ* Ġ@ property Ġreward Delete ĠBoolean Ġæ ¿ Ģ åĬ ± å±ķç¤º åĲİ åĪłéĻ¤ Ċ // ĠĠĠĠ Ġ* Ġ@ property Ġis Rew arded ĠBoolean Ċ // ĠĠĠĠ Ġ* Ġ@ constructor Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġabstract Ġclass ĠMultiple Rew ar Listener Ġ: ĠAd Listener Reward , Ġcom . facebook . ads . Rew arded Video Ad Listener , Ċ // ĠĠĠĠĠĠĠ ĠRew arded Video Ad Listener Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġvar Ġis Rew arded Ġ= Ġfalse Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Rew arded Video Closed () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ("${ Ad Name Type . FACE BOOK . type }: Ġ${ context . getString ( R . string . dismiss )} ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġon Ad Close ( Ad Name Type . FACE BOOK . type , Ġis Rew arded ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Clicked ( p 0 : ĠAd ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ("${ Ad Name Type . FACE BOOK . type }: Ġ${ context . getString ( R . string . clicked )} ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġon Ad Click ( Ad Name Type . FACE BOOK . type ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( p 0 : ĠAd ?, Ġp 1 : ĠAd Error ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ("${ Ad Name Type . FACE BOOK . type }: ĠerrorCode :${ p 1 ?. errorCode } Ġ${ p 1 ?. errorMessage }") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġon Ad Failed ( p 1 ?. errorMessage Ġ?: Ġ"") Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ad Loaded ( p 0 : ĠAd ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġon Ad Prepared ( Ad Name Type . FACE BOOK . type ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Logging Imp ression ( p 0 : ĠAd ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ("${ Ad Name Type . FACE BOOK . type }: Ġ${ context . getString ( R . string . show )} ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġon Ad Show ( Ad Name Type . FACE BOOK . type ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// åĪĨ åī² çº¿ Ċ // Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Rew arded Video Completed () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ( context . getString ( R . string . complete )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġis Rew arded Ġ= Ġtrue Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Rew arded Video Ad Closed () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ("${ Ad Name Type . GOOGLE _ AD MOB . type }: Ġ${ context . getString ( R . string . dismiss )} Ġ$ is Rew arded ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġon Ad Close ( Ad Name Type . GOOGLE _ AD MOB . type , Ġis Rew arded ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Rew arded Video Ad Left Application () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ("${ Ad Name Type . GOOGLE _ AD MOB . type }: Ġ${ context . getString ( R . string . clicked )} ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġon Ad Click ( Ad Name Type . GOOGLE _ AD MOB . type ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Rew arded Video Ad Loaded () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ("${ Ad Name Type . GOOGLE _ AD MOB . type }: Ġ${ context . getString ( R . string . prepared )} ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġon Ad Prepared ( Ad Name Type . GOOGLE _ AD MOB . type ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Rew arded Video Ad Opened () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ("${ Ad Name Type . GOOGLE _ AD MOB . type }: Ġ${ context . getString ( R . string . show )} ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġon Ad Show ( Ad Name Type . GOOGLE _ AD MOB . type ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Rew arded ( p 0 : ĠRew ard Item ?) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Rew arded Video Started () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Rew arded Video Ad Failed To Load ( p 0 : ĠInt ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge ("${ Ad Name Type . GOOGLE _ AD MOB . type }: ĠerrorCode :$ p 0 ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġon Ad Failed ( p 0 . toString ()) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġ çĽĳåĲ¬ åĻ¨ Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġinterface ĠAd Listener Reward Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// å¼Ģå§ĭ è¯·æ±Ĥ Ċ // ĠĠĠĠĠĠĠ Ġfun ĠonStart Request ( channel : ĠString ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// çĤ¹åĩ» äºĨ Ċ // ĠĠĠĠĠĠĠ Ġfun Ġon Ad Click ( channel : ĠString ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// å¤±è´¥ äºĨ Ċ // ĠĠĠĠĠĠĠ Ġfun Ġon Ad Failed ( failed Msg : ĠString ?) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// å±ķç¤º äºĨ Ċ // ĠĠĠĠĠĠĠ Ġfun Ġon Ad Show ( channel : ĠString ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// åħ³éĹŃ äºĨ Ċ // ĠĠĠĠĠĠĠ Ġfun Ġon Ad Close ( channel : ĠString , Ġis Reward : ĠBoolean ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// åĩĨå¤ĩ å¥½ äºĨ Ċ // ĠĠĠĠĠĠĠ Ġfun Ġon Ad Prepared ( channel : ĠString ) Ċ // ĠĠĠ Ġ} Ċ //}