package Ġcom . cha qu opy . cha qu opy Ċ Ċ import Ġandroidx . annotation . NonNull Ċ import Ġcom . cha quo . python . Py Exception Ċ import Ġcom . cha quo . python . PyObject Ċ import Ġcom . cha quo . python . Python Ċ Ċ import Ġio . flutter . embedding . engine . plugins . Flutter Plugin Ċ 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 Ġjava . util .* Ċ Ċ /** ĠCh aqu opy Plugin Ġ*/ Ċ class ĠCh aqu opy Plugin Ġ: ĠFlutter Plugin , ĠMethod Call Handler Ġ{ ĊĠĠĠ Ġ/// Ġ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 ĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Engine (@ NonNull Ġflutter Plugin Binding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchannel Ġ= ĠMethod Channel ( flutter Plugin Binding . binary Messenger , Ġ" cha qu opy ") ĊĠĠĠĠĠĠĠ Ġchannel . set MethodCall Handler ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ Ġ* ĠThis Ġwill Ġrun Ġpython Ġcode Ġconsisting Ġof Ġerror Ġand Ġresult Ġoutput ... ĊĠĠĠ Ġfun Ġ_ run Python Text Code ( code : ĠString ): ĠMap < String , ĠAny ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ_ return Output : ĠMutable Map < String , ĠAny ?> Ġ= ĠHashMap () ĊĠĠĠĠĠĠĠ Ġval Ġ_ python : ĠPython Ġ= ĠPython . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġ_ console : ĠPyObject Ġ= Ġ_ python . getModule (" script ") ĊĠĠĠĠĠĠĠ Ġval Ġ_ sys : ĠPyObject Ġ= Ġ_ python . getModule (" sys ") ĊĠĠĠĠĠĠĠ Ġval Ġ_ io : ĠPyObject Ġ= Ġ_ python . getModule (" io ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ_ text OutputStream : ĠPyObject Ġ= Ġ_ io . call Attr (" String IO ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ sys [" stdout "] Ġ= Ġ_ text OutputStream ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ console . call Attr Throws (" main Text Code ", Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ return Output [" text Output Or Error "] Ġ= Ġ_ text OutputStream . call Attr (" get value "). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ return Output ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠPy Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ return Output [" text Output Or Error "] Ġ= Ġe . message . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ return Output ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon MethodCall (@ NonNull Ġcall : ĠMethod Call , Ġ@ NonNull Ġresult : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( call . method Ġ== Ġ" run Python Script ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode : ĠString Ġ= Ġcall . arguments () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ_ result : ĠMap < String , ĠAny ?> Ġ= Ġ_ run Python Text Code ( code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success (_ result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ_ result : ĠMutable Map < String , ĠAny ?> Ġ= ĠHashMap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ result [" text Output Or Error "] Ġ= Ġe . message . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success (_ result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Engine (@ NonNull Ġbinding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchannel . set MethodCall Handler ( null ) ĊĠĠĠ Ġ} Ċ } Ċ