package Ġcom . sky do ves . movie compose . addons Ċ Ċ import Ġandroid . widget . Toast Ċ import Ġcom . permission x . gu olin dev . Permission X Ċ import Ġcom . permission x . gu olin dev . callback . Explain Reason Callback Ċ import Ġcom . permission x . gu olin dev . callback . Request Callback Ċ import Ġcom . permission x . gu olin dev . request . Explain Scope Ċ import Ġcom . sky do ves . movie compose . core . WV JB WebView Ċ import Ġcom . tencent . smt t . sdk . WebView Ċ import Ġcom . sky do ves . movie compose . core . Web Addon Ċ import Ġcom . sky do ves . movie compose . core . Web Addon Args Ċ import Ġcom . sky do ves . movie compose . core . Web Addon Callback Ċ import Ġcom . sky do ves . movie compose . core . extensions . as Web Addon Args Ċ import Ġcom . sky do ves . movie compose . ui . main . MainActivity Ċ import Ġorg . json . JSONObject Ċ Ċ class ĠWeb Addons Repository ( ĊĠĠĠ Ġval Ġadd ons : ĠArray < Web Addon > Ċ ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġadd ons . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå°Ĩ addons çļĦæĸ¹æ³ķ æıĲ åıĸ åĪ° map éĩĮéĿ¢ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . cache Self Methods () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexec ( web View : ĠWebView , Ġalias Name : ĠString , Ġname : ĠString , ĠjsonObject : ĠJSONObject ?, Ġid : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġweb Addon Ġ= Ġadd ons . first OrNull Ġ{ Ġit . alias Name Ġ== Ġalias Name Ġ} Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( web Addon . permissions ?. isNotEmpty () Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Permissions Ġ= Ġweb Addon . permissions ?. filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġæ£Ģ æŁ¥ æĿĥéĻĲ ï¼Į æ²¡æľī åĪĻ åĬ¨æĢģ çĶ³è¯· ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! Permission X . is Granted ( web View . context , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( request Permissions !!. isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPermission X . init ( web View . context Ġas ĠMainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. permissions ( request Permissions ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Explain Request Reason Ġ{ Ġscope , Ġdenied List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscope . show Request Reason Dialog ( den ied List , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" åĲĮ æĦı ä»¥ä¸ĭ æĿĥéĻĲ æīįèĥ½ æŃ£å¸¸ ä½¿çĶ¨ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Allow ", Ġ" Den y ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. request Ġ{ Ġall Granted , Ġgranted List , Ġdenied List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( all Granted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġåı¯ä»¥ æŃ£å¸¸ ä½¿çĶ¨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( web View . context , Ġ" æĤ¨ åı¯ä»¥ æŃ£å¸¸ ä½¿çĶ¨ ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĬ ¥ éĶĻ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( web View . context , Ġ" æĤ¨ æĭ Ĵ ç»Ŀ äºĨ æĿĥéĻĲ : Ġ$ den ied List ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġweb Addon . method Met as [ name ]?. let Ġ{ Ġmethod Meta Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠjsonObject ?. as Web Addon Args () Ġ?: ĠWeb Addon Args () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( id . isNull OrEmpty ()) Ġnull Ġelse ĠWeb Addon Callback ( web View , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoke Method ( web Addon , Ġmethod Meta , Ġargs , Ġcallback ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinvoke Method ( web Addon : ĠWeb Addon , Ġmethod Meta : ĠWeb Addon Method Meta , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs : ĠWeb Addon Args , Ġcallback : ĠWeb Addon Callback ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( method Meta . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAdd on Method Types . EXECUTE _ VOID Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Meta . method . invoke ( web Addon , Ġargs ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. success ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAdd on Method Types . EXECUTE _ RETURN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. success ( method Meta . method . invoke ( web Addon , Ġargs )?. toString () Ġ?: Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAdd on Method Types . EXECUTE _ CALLBACK Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Meta . method . invoke ( web Addon , Ġargs , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ