package Ġcom . mul jin . zen desk Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . util . Log Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . google . android . material . internal . Context Utils . getActivity Ċ import Ġcom . zen desk . logger . Logger Ċ 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 Ċ import Ġz ende sk . chat .* Ċ import Ġz ende sk . messaging . Messaging Activity ĊĊ Ċ /** ĠZ ende sk Helper Ġ*/ Ċ class ĠZ ende sk Helper Ġ: ĠFlutter Plugin , ĠMethod Call Handler , ĠActivity Aware Ġ{ ĊĠ Ġ// Ġ/ ĠThe ĠMethod Channel Ġthat Ġwill Ġthe Ġcommunication Ġbetween ĠFlutter Ġand Ġnative ĠAndroid ĊĠ Ġ// Ġ/ ĊĠ Ġ// Ġ/ ĠThis Ġlocal Ġreference Ġserves Ġto Ġregister Ġthe Ġplugin Ġwith Ġthe ĠFlutter ĠEngine Ġand Ġunregister Ġit ĊĠ Ġ// Ġ/ Ġwhen Ġthe ĠFlutter ĠEngine Ġis Ġdet ached Ġfrom Ġthe ĠActivity ĊĠ Ġprivate Ġlateinit Ġvar Ġchannel : ĠMethod Channel ĊĠ Ġprivate Ġlateinit Ġvar Ġactivity : ĠActivity ĊĊĠ Ġoverride Ġfun Ġon Attached To Engine (@ NonNull Ġflutter Plugin Binding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠ Ġchannel Ġ= ĠMethod Channel ( flutter Plugin Binding . binary Messenger , Ġ" zen desk ") ĊĠĠĠ Ġchannel . set MethodCall Handler ( this ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Detached From Engine (@ NonNull Ġbinding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠ Ġchannel . set MethodCall Handler ( null ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Detached From Activity () Ġ{ ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Re attached To Activity For Config Changes ( binding : ĠActivity Plugin Binding ) Ġ{ ĊĠ Ġ} ĊĊĠ Ġ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 MethodCall (@ NonNull Ġcall : ĠMethod Call , Ġ@ NonNull Ġresult : ĠResult ) Ġ{ Ċ Ċ try Ġ{ ĊĊĊĠĠĠ Ġwhen Ġ( call . method ) Ġ{ ĊĠĠĠĠĠ Ġ" get Platform Version " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġresult . success (" Android Ġ${ android . os . Build . VERSION . RELEASE }") ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ" initialize " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġinitialize ( call ) ĊĠĠĠĠĠĠĠ Ġresult . success ( true ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ" set Visitor Info " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġset Visitor Info ( call ) ĊĠĠĠĠĠĠĠ Ġresult . success ( true ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ" start Chat " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġstart Chat ( call ) ĊĠĠĠĠĠĠĠ Ġresult . success ( true ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ" add Tags " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Tags ( call ) ĊĠĠĠĠĠĠĠ Ġresult . success ( true ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ" remove Tags " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġremove Tags ( call ) ĊĠĠĠĠĠĠĠ Ġresult . success ( true ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . not Implemented () ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } catch Ġ( e : Exception ){ ĊĠ Ġresult . error (" un K now en ", e . message , e . toString ()); Ċ } ĊĠ Ġ} ĊĊĠ Ġfun Ġinitialize ( call : ĠMethod Call ) Ġ{ ĊĠĠĠ ĠLogger . set Log gable ( Build Config . DEBUG ) ĊĠĠĠ Ġval Ġaccount Key Ġ= Ġcall . argument < String >(" account Key ") Ġ?: Ġ"" ĊĠĠĠ Ġval Ġapplication Id Ġ= Ġcall . argument < String >(" appId ") Ġ?: Ġ"" ĊĊĠĠĠ ĠChat . INSTANCE . init ( activity , Ġaccount Key , Ġapplication Id ) ĊĠ Ġ} ĊĊĠ Ġfun Ġset Visitor Info ( call : ĠMethod Call ) Ġ{ ĊĠĠĠ Ġval Ġname Ġ= Ġcall . argument < String >(" name ") Ġ?: Ġ"" ĊĠĠĠ Ġval Ġemail Ġ= Ġcall . argument < String >(" email ") Ġ?: Ġ"" ĊĠĠĠ Ġval ĠphoneNumber Ġ= Ġcall . argument < String >(" phoneNumber ") Ġ?: Ġ"" ĊĠĠĠ Ġval Ġdepartment Ġ= Ġcall . argument < String >(" department ") Ġ?: Ġ"" ĊĊĠĠĠ Ġval Ġprofile Provider Ġ= ĠChat . INSTANCE . providers ()?. profile Provider () ĊĠĠĠ Ġval Ġchat Provider Ġ= ĠChat . INSTANCE . providers ()?. chat Provider () ĊĊĠĠĠ Ġval Ġvisitor Info Ġ= ĠVisitor Info . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Name ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Email ( email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with PhoneNumber ( phoneNumber ) Ġ// Ġnumeric Ġstring ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġprofile Provider ?. set Visitor Info ( visitor Info , Ġnull ) ĊĠĠĠ Ġchat Provider ?. set Department ( department , Ġnull ) ĊĠ Ġ} ĊĊĠ Ġfun Ġadd Tags ( call : ĠMethod Call ) Ġ{ ĊĠĠĠ Ġval Ġtags Ġ= Ġcall . argument < List < String >> (" tags ") Ġ?: ĠlistOf < String >() ĊĠĠĠ Ġval Ġprofile Provider Ġ= ĠChat . INSTANCE . providers ()?. profile Provider () ĊĠĠĠ Ġprofile Provider ?. add Visitor Tags ( tags , Ġnull ) ĊĠ Ġ} ĊĊĠ Ġfun Ġremove Tags ( call : ĠMethod Call ) Ġ{ ĊĠĠĠ Ġval Ġtags Ġ= Ġcall . argument < List < String >> (" tags ") Ġ?: ĠlistOf < String >() ĊĠĠĠ Ġval Ġprofile Provider Ġ= ĠChat . INSTANCE . providers ()?. profile Provider () ĊĠĠĠ Ġprofile Provider ?. remove Visitor Tags ( tags , Ġnull ) ĊĠ Ġ} ĊĊĠ Ġfun Ġstart Chat ( call : ĠMethod Call ) Ġ{ ĊĠĠĠ Ġval Ġis Pre Chat Form Enabled Ġ= Ġcall . argument < Boolean >(" is Pre Chat Form Enabled ") Ġ?: Ġtrue ĊĠĠĠ Ġval Ġis Agent Availability Enabled Ġ= Ġcall . argument < Boolean >(" is Agent Availability Enabled ") Ġ?: Ġtrue ĊĠĠĠ Ġval Ġis Chat Transcript Prompt Enabled Ġ= Ġcall . argument < Boolean >(" is Chat Transcript Prompt Enabled ") Ġ?: Ġtrue ĊĠĠĠ Ġval Ġis Offline Form Enabled Ġ= Ġcall . argument < Boolean >(" is Offline Form Enabled ") Ġ?: Ġtrue ĊĠĠĠ Ġval Ġchat Configuration Builder Ġ= ĠChat Configuration . builder () ĊĠĠĠ Ġchat Configuration Builder ĊĠĠĠĠĠĠĠ Ġ. with Agent Availability Enabled ( is Agent Availability Enabled ) ĊĠĠĠĠĠĠĠ Ġ. with Transcript Enabled ( is Chat Transcript Prompt Enabled ) ĊĠĠĠĠĠĠĠ Ġ. with Offline Form Enabled ( is Offline Form Enabled ) ĊĠĠĠĠĠĠĠ Ġ. with Pre Chat Form Enabled ( is Pre Chat Form Enabled ) ĊĠĠĠĠĠĠĠ Ġ. with Chat Menu Actions ( Chat Menu Action . END _ CHAT ) ĊĊĠĠĠ Ġval Ġchat Configuration Ġ= Ġchat Configuration Builder . build () Ċ try Ġ{ ĊĠ ĠMessaging Activity . builder () ĊĠĠĠĠĠĠĠĠĠ Ġ. with Toolbar Title (" Contact ĠUs ") ĊĠĠĠĠĠĠĠĠĠ Ġ. with En gin es ( Chat Engine . engine ()) ĊĠĠĠĠĠĠĠĠĠ Ġ. show ( activity , Ġchat Configuration ) Ċ } catch Ġ( Ġe : Exception ){ Ċ Ġthrow Ġe ; Ċ } ĊĊĠ Ġ} Ċ } Ċ