package Ġcom . sk w crd . flutter _ n fc Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ Ċ import Ġandroid . n fc . Tag Ċ import Ġandroid . n fc . N fc Adapter Ċ Ċ import Ġio . flutter . plugin . common . MethodCall Ċ import Ġio . flutter . plugin . common . Method Channel Ċ import Ġio . flutter . plugin . common . Method Channel . Result Ċ Ċ class ĠN fc Session ( ĊĠĠĠ Ġprivate Ġval Ġactivity : ĠActivity , ĊĠĠĠ Ġprivate Ġval Ġchannel Ġ: ĠMethod Channel , ĊĠĠĠ Ġprivate Ġval Ġtag Manager : ĠTag Manager , Ċ ): ĠN fc Adapter . Reader Callback Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠN fc Adapter ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Tag Dis covered ( tag : ĠTag ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . invoke Method ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" on Tag Dis covered ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Manager . getTag Map ( tag ). to Mutable Map ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit ( content : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠN fc Adapter . getDefault Adapter ( content ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Available (/* call : ĠMethod Call , Ġ*/ result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . success ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. isEnabled Ġ?: Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart Session ( call : ĠMethod Call , Ġresult : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= Ġadapter Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" un available ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" N FC Ġis Ġnot Ġavailable Ġfor Ġdevice .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpolling Option Ġ= Ġcall . argument < List < String >> (" polling Option ") !! ĊĊĠĠĠĠĠĠĠ Ġadapter . enable Reader Mode ( activity , Ġthis , Ġget Flags ( polling Option ), Ġnull ) ĊĠĠĠĠĠĠĠ Ġresult . success ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop Session (/* call : ĠMethod Call , Ġ*/ result : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= Ġadapter Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" un available ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" N FC Ġis Ġnot Ġavailable Ġfor Ġdevice .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadapter . disable Reader Mode ( activity ) ĊĠĠĠĠĠĠĠ Ġresult . success ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter ?. disable Reader Mode ( activity ) ĊĠĠĠĠĠĠĠ Ġadapter Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Flags ( ĊĠĠĠĠĠĠĠ Ġoptions : ĠList < String > Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" iso 1 4 4 4 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" iso 1 5 6 9 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" iso 1 8 0 9 2 ") ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġflags Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( Ġoption Ġin Ġoptions Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoption . contains (" iso 1 4 4 4 3 ") Ġ-> Ġ{ Ġ// Ġiso 1 4 4 4 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġflags Ġor ĠN fc Adapter . FLAG _ READ ER _ N FC _ A Ġor ĠN fc Adapter . FLAG _ READ ER _ N FC _ B ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoption . contains (" iso 1 5 6 9 3 ") Ġ-> Ġ{ Ġ// Ġiso 1 5 6 9 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġflags Ġor ĠN fc Adapter . FLAG _ READ ER _ N FC _ V ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoption . contains (" iso 1 8 0 9 2 ") Ġ-> Ġ{ Ġ// Ġiso 1 8 0 9 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġflags Ġor ĠN fc Adapter . FLAG _ READ ER _ N FC _ F ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġflags ĊĠĠĠ Ġ} Ċ }