package Ġre . not ifica . flutter Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ 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 . JSON Method Codec Ċ import Ġio . flutter . plugin . common . MethodCall Ċ import Ġio . flutter . plugin . common . Method Channel Ċ import Ġio . flutter . plugin . common . Method Channel . Result Ċ import Ġio . flutter . plugin . common . Plugin Registry Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ import Ġre . not ifica . Not ific are Ċ import Ġre . not ifica . Not ific are Callback Ċ import Ġre . not ifica . flutter . events . Not ific are Event Ċ import Ġre . not ifica . flutter . events . Not ific are Event Manager Ċ import Ġre . not ifica . k tx . device Ċ import Ġre . not ifica . k tx . events Ċ import Ġre . not ifica . models .* Ċ Ċ class ĠNot ific are Plugin Ġ: ĠFlutter Plugin , ĠActivity Aware , ĠPlugin Registry . New Intent Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġactivity : ĠActivity ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġchannel : ĠMethod Channel ĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Engine ( binding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġbinding . application Context ĊĊĠĠĠĠĠĠĠ Ġ// ĠEvents ĊĠĠĠĠĠĠĠ ĠNot ific are Event Manager . register ( binding . binary Messenger ) ĊĊĠĠĠĠĠĠĠ ĠNot ific are . intent Receiver Ġ= ĠNot ific are Plugin Receiver :: class . java ĊĊĠĠĠĠĠĠĠ Ġchannel Ġ= ĠMethod Channel ( binding . binary Messenger , Ġ" re . not ifica . flutter / not ific are ", ĠJSON Method Codec . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġchannel . set MethodCall Handler Ġ{ Ġcall , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( call . method ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNot ific are ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" is Configured " Ġ-> Ġis Configured ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" is Ready " Ġ-> Ġis Ready ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" launch " Ġ-> Ġlaunch ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" un launch " Ġ-> Ġun launch ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" getApplication " Ġ-> Ġget Application ( call , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fetch Application " Ġ-> Ġfetch Application ( call , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fetch Notification " Ġ-> Ġfetch Notification ( call , Ġresult ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDevice Ġmodule ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" getCurrent Device " Ġ-> ĠgetCurrent Device ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" register " Ġ-> Ġregister ( call , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fetch Tags " Ġ-> Ġfetch Tags ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" add Tag " Ġ-> Ġadd Tag ( call , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" add Tags " Ġ-> Ġadd Tags ( call , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" remove Tag " Ġ-> Ġremove Tag ( call , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" remove Tags " Ġ-> Ġremove Tags ( call , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" clear Tags " Ġ-> Ġclear Tags ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" get Preferred Language " Ġ-> Ġget Preferred Language ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" update Preferred Language " Ġ-> Ġupdate Preferred Language ( call , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fetch DoNot Dist urb " Ġ-> Ġfetch DoNot Dist urb ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" update DoNot Dist urb " Ġ-> Ġupdate DoNot Dist urb ( call , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" clear DoNot Dist urb " Ġ-> Ġclear DoNot Dist urb ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fetch UserData " Ġ-> Ġfetch UserData ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" update UserData " Ġ-> Ġupdate UserData ( call , Ġresult ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEvents Ġmodule ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" log Custom " Ġ-> Ġlog Custom ( call , Ġresult ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUnhandled ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġresult . not Implemented () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Engine ( binding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchannel . set MethodCall Handler ( null ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠEvents ĊĠĠĠĠĠĠĠ ĠNot ific are Event Manager . unregister () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġregion ĠActivity Aware ĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Activity ( binding : ĠActivity Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠKeep Ġa Ġreference Ġto Ġthe Ġcurrent Ġactivity . ĊĠĠĠĠĠĠĠ Ġactivity Ġ= Ġbinding . activity ĊĊĠĠĠĠĠĠĠ Ġ// ĠListen Ġto Ġincoming Ġintent s . ĊĠĠĠĠĠĠĠ Ġbinding . add On New Intent Listener ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġthe Ġinitial Ġintent , Ġif Ġany . ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġbinding . activity . intent ĊĠĠĠĠĠĠĠ Ġif Ġ( intent Ġ!= Ġnull ) Ġon New Intent ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Activity () Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Activity For Config Changes () Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Re attached To Activity For Config Changes ( binding : ĠActivity Plugin Binding ) Ġ{} ĊĊĠĠĠ Ġ// Ġend region ĊĊĠĠĠ Ġ// Ġregion ĠPlugin Registry . New Intent Listener ĊĊĠĠĠ Ġoverride Ġfun Ġon New Intent ( intent : ĠIntent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTry Ġhandling Ġthe Ġtest Ġdevice Ġintent . ĊĠĠĠĠĠĠĠ Ġif Ġ( Not ific are . handle Test Device Intent ( intent )) Ġreturn Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ// ĠTry Ġhandling Ġthe Ġdynamic Ġlink Ġintent . ĊĠĠĠĠĠĠĠ Ġif Ġ( Not ific are . handle Dynamic Link Intent ( activity , Ġintent )) Ġreturn Ġtrue ĊĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġintent . data ?. toString () ĊĠĠĠĠĠĠĠ Ġif Ġ( url Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNot ific are Event Manager . send ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNot ific are Event . Url Opened ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġend region ĊĊĠĠĠ Ġ// Ġregion ĠNot ific are ĊĊĠĠĠ Ġprivate Ġfun Ġis Configured ( result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . success ( Not ific are . is Configured ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Ready ( result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . success ( Not ific are . is Ready ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlaunch ( result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ ĠNot ific are . launch () ĊĠĠĠĠĠĠĠ Ġresult . success ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġun launch ( result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ ĠNot ific are . un launch () ĊĠĠĠĠĠĠĠ Ġresult . success ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Application (@ Suppress (" UNUSED _ PARAMETER ") Ġcall : ĠMethod Call , Ġresponse : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresponse . success ( Not ific are . application ?. toJson ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Application (@ Suppress (" UNUSED _ PARAMETER ") Ġcall : ĠMethod Call , Ġresponse : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ ĠNot ific are . fetch Application ( object Ġ: ĠNot ific are Callback < Not ific are Application > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠNot ific are Application ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . success ( result . toJson ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Notification (@ Suppress (" UNUSED _ PARAMETER ") Ġcall : ĠMethod Call , Ġresponse : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġcall . arguments < String >() ĊĊĠĠĠĠĠĠĠ ĠNot ific are . fetch Notification ( id , Ġobject Ġ: ĠNot ific are Callback < Not ific are Notification > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠNot ific are Notification ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . success ( result . toJson ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġend region ĊĊĠĠĠ Ġ// Ġregion ĠNot ific are ĠDevice ĠManager ĊĊĠĠĠ Ġprivate Ġfun ĠgetCurrent Device ( plugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplugin Result . success ( Not ific are . device (). current Device ?. toJson ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġregister ( call : ĠMethod Call , Ġplugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= Ġcall . arguments < JSONObject >() ĊĊĠĠĠĠĠĠĠ Ġval ĠuserId Ġ= Ġif Ġ(! arguments . isNull (" userId ")) Ġarguments . getString (" userId ") Ġelse Ġnull ĊĠĠĠĠĠĠĠ Ġval ĠuserName Ġ= Ġif Ġ(! arguments . isNull (" userName ")) Ġarguments . getString (" userName ") Ġelse Ġnull ĊĊĠĠĠĠĠĠĠ ĠNot ific are . device (). register ( userId , ĠuserName , Ġobject Ġ: ĠNot ific are Callback < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Tags ( plugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ ĠNot ific are . device (). fetch Tags ( object Ġ: ĠNot ific are Callback < List < String >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . success ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Tag ( call : ĠMethod Call , Ġplugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġcall . arguments < String >() ĊĊĠĠĠĠĠĠĠ ĠNot ific are . device (). add Tag ( tag , Ġobject Ġ: ĠNot ific are Callback < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Tags ( call : ĠMethod Call , Ġplugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġcall . arguments < JSONArray >() ĊĊĠĠĠĠĠĠĠ Ġval Ġtags Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġjson . length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtags . add ( json . getString ( i )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠNot ific are . device (). add Tags ( tags , Ġobject Ġ: ĠNot ific are Callback < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove Tag ( call : ĠMethod Call , Ġplugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġcall . arguments < String >() ĊĊĠĠĠĠĠĠĠ ĠNot ific are . device (). remove Tag ( tag , Ġobject Ġ: ĠNot ific are Callback < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove Tags ( call : ĠMethod Call , Ġplugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġcall . arguments < JSONArray >() ĊĊĠĠĠĠĠĠĠ Ġval Ġtags Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġjson . length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtags . add ( json . getString ( i )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠNot ific are . device (). remove Tags ( tags , Ġobject Ġ: ĠNot ific are Callback < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear Tags ( plugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ ĠNot ific are . device (). clear Tags ( object Ġ: ĠNot ific are Callback < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Preferred Language ( result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . success ( Not ific are . device (). preferred Language ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Preferred Language ( call : ĠMethod Call , Ġplugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlanguage Ġ= Ġcall . arguments < String ?> () ĊĊĠĠĠĠĠĠĠ ĠNot ific are . device (). update Preferred Language ( language , Ġobject Ġ: ĠNot ific are Callback < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch DoNot Dist urb ( plugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ ĠNot ific are . device (). fetch DoNot Dist urb ( object Ġ: ĠNot ific are Callback < Not ific are DoNot Dist urb ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠNot ific are DoNot Dist urb ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . success ( result ?. toJson ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate DoNot Dist urb ( call : ĠMethod Call , Ġplugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd nd Ġ= ĠNot ific are DoNot Dist urb . fromJson ( call . arguments ()) ĊĊĠĠĠĠĠĠĠ ĠNot ific are . device (). update DoNot Dist urb ( d nd , Ġobject Ġ: ĠNot ific are Callback < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear DoNot Dist urb ( plugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ ĠNot ific are . device (). clear DoNot Dist urb ( object Ġ: ĠNot ific are Callback < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch UserData ( plugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ ĠNot ific are . device (). fetch UserData ( object Ġ: ĠNot ific are Callback < Not ific are UserData > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠNot ific are UserData ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . success ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate UserData ( call : ĠMethod Call , Ġplugin Result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġcall . arguments < JSONObject >() ĊĠĠĠĠĠĠĠ Ġval ĠuserData Ġ= Ġmutable Map Of < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġval Ġiterator Ġ= Ġjson . keys () ĊĠĠĠĠĠĠĠ Ġwhile Ġ( iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġiterator . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! json . isNull ( key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserData [ key ] Ġ= Ġjson . getString ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠNot ific are . device (). update UserData ( userData , Ġobject Ġ: ĠNot ific are Callback < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Result . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġend region ĊĊĠĠĠ Ġ// Ġregion ĠNot ific are ĠEvents ĠManager ĊĊĠĠĠ Ġprivate Ġfun Ġlog Custom ( call : ĠMethod Call , Ġresponse : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġevent : ĠString ĊĠĠĠĠĠĠĠ Ġval Ġdata : ĠNot ific are EventData ? ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Ġ= Ġrequire NotNull ( call . argument < String >(" event ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġcall . argument < JSONObject >(" data ") ?. let Ġ{ Ġre . not ifica . models . Not ific are Event . create Data ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠNot ific are . events (). log Custom ( event , Ġdata , Ġobject Ġ: ĠNot ific are Callback < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . error ( DEFAULT _ ERROR _ CODE , Ġe . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġend region ĊĊĠĠĠ Ġinternal Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDEFAULT _ ERROR _ CODE Ġ= Ġ" not ific are _ error " ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġon MainThread ( action : Ġ() Ġ-> ĠUnit ) Ġ= ĠHandler ( Looper . get Main Looper ()). post Ġ{ Ġaction () Ġ} ĊĠĠĠ Ġ} Ċ } Ċ