package Ġcom . y ur ani . m if are _ m mt z Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . n fc . N fc Adapter Ċ import Ġandroid . n fc . tech . M if are Classic Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Log Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . annotation . Requires Api Ċ Ċ 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 Ġio . flutter . plugin . common . Plugin Registry . Registrar Ċ import Ġjava . util .* Ċ import Ġkotlin . jvm . internal . Intr insics Ċ Ċ private Ġconst Ġval ĠTAG Ġ= Ġ" M if are M mt z Plugin " Ċ Ċ /** ĠM if are M mt z Plugin Ġ*/ Ċ class ĠM if are M mt z Plugin : Ġ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 ĊĠ Ġprivate Ġvar Ġm N fc Adapter : ĠN fc Adapter ? Ġ= Ġnull ĊĠ Ġprivate Ġlateinit Ġvar Ġm if are Classic : ĠM if are Classic ĊĠ Ġprivate Ġval Ġflag Ġ= ĠN fc Adapter . FLAG _ READ ER _ N FC _ A ĊĊĠ Ġoverride Ġfun Ġon Attached To Engine (@ NonNull Ġflutter Plugin Binding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠ Ġchannel Ġ= ĠMethod Channel ( flutter Plugin Binding . binary Messenger , Ġ" m if are _ m mt z ") ĊĠĠĠ Ġchannel . set MethodCall Handler ( this ) ĊĠĠĠ Ġm N fc Adapter Ġ= ĠN fc Adapter . getDefault Adapter ( flutter Plugin Binding . application Context ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon MethodCall (@ NonNull Ġcall : ĠMethod Call , Ġ@ NonNull Ġresult : ĠResult ) Ġ{ ĊĠĠĠ Ġwhen Ġ( call . method ) Ġ{ ĊĠĠĠĠĠ Ġ" is N FC Enable " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġis N FC Enabled ( result ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ" getId " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ ĠgetId ( result ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . not Implemented () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġis N FC Enabled ( result : ĠResult ) Ġ{ ĊĠĠĠ Ġval Ġmessage : ĠString Ġ= Ġif Ġ( m N fc Adapter Ġ!= Ġnull Ġ&& Ġm N fc Adapter !!. isEnabled ) Ġ{ ĊĠĠĠĠĠ Ġ" Enabled " ĊĠĠĠ Ġ} Ġelse Ġif Ġ( m N fc Adapter Ġ!= Ġnull Ġ&& Ġ! m N fc Adapter !!. isEnabled ) Ġ{ ĊĠĠĠĠĠ Ġ" Not Enabled " ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġ" NotSupported " ĊĠĠĠ Ġ} ĊĠĠĠ Ġresult . success ( message ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠgetId ( result : ĠResult ) Ġ{ ĊĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . KIT K AT ) Ġ{ ĊĠĠĠĠĠ Ġm N fc Adapter ?. enable Reader Mode ( activity , Ġ{ Ġtag Ġ-> ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĊĠĠĠĠĠĠĠĠĠ Ġm if are Classic Ġ= ĠM if are Classic . get ( tag ) ĊĠĠĠĠĠĠĠĠĠ Ġm if are Classic . connect () ĊĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġid To Decimal String ( tag . id ) ĊĠĠĠĠĠĠĠĠĠ Ġactivity . run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ( id ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" getID : Ġ", Ġe ) ĊĠĠĠĠĠĠĠĠĠ Ġactivity . run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . error (" 4 0 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . localized Message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġm if are Classic . close () ĊĠĠĠĠĠĠĠĠĠ Ġm N fc Adapter ?. disable Reader Mode ( activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ}, Ġflag , Ġnull ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġid To Decimal String ( b Arr : ĠByteArray ): ĠString Ġ{ ĊĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () ĊĠĠĠ Ġfor Ġ( length Ġin Ġb Arr . indices . reversed ()) Ġ{ ĊĠĠĠĠĠ Ġval Ġobj Arr Ġ= ĠarrayOf < Any >( java . lang . Byte . valueOf ( b Arr [ length ])) ĊĠĠĠĠĠ Ġval Ġformat Ġ= ĠString . format ("% 0 2 X ", Ġ* obj Arr . copyOf ( obj Arr . size )) ĊĠĠĠĠĠ ĠIntr insics . check Expression Value IsNotNull ( format , Ġ" java . lang . String . format ( format , Ġ* args )") ĊĠĠĠĠĠ Ġsb . append ( format ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġsb 2 Ġ= Ġsb . toString () ĊĠĠĠ ĠIntr insics . check Expression Value IsNotNull ( sb 2 , Ġ" sb . toString () ") ĊĠĠĠ Ġif Ġ( sb 2 Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġval Ġlower Case Ġ= Ġsb 2 . toLowerCase () ĊĠĠĠĠĠ ĠIntr insics . check Expression Value IsNotNull ( lower Case , Ġ"( this Ġas Ġjava . lang . String ). toLowerCase () ") ĊĠĠĠĠĠ Ġreturn Ġlower Case . to Long ( 1 6 ). toString () ĊĠĠĠ Ġ} ĊĠĠĠ Ġthrow ĠType CastException (" null Ġcannot Ġbe Ġcast Ġto Ġnon - null Ġtype Ġjava . lang . String ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Detached From Engine (@ NonNull Ġbinding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠ Ġchannel . set MethodCall Handler ( null ) ĊĠ Ġ} ĊĊĠ Ġ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 Re attached To Activity For Config Changes ( binding : ĠActivity Plugin Binding ) Ġ{ ĊĠĠĠ Ġactivity Ġ= Ġbinding . activity ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Detached From Activity () Ġ{ ĊĠ Ġ} Ċ } Ċ