package Ġcom . example . ro zet kin _ ctf _ challenge Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Intent Ċ import Ġandroid . n fc . N fc Adapter Ċ import Ġandroid . n fc . Tag Ċ import Ġandroid . n fc . tech . M if are Classic Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . example . ro zet kin _ ctf _ challenge . extensions .* Ċ import Ġkotlinx . android . synt hetic . main . activity _ n _ f _ c .* Ċ import Ġjava . io . IOException Ċ import Ġkotlin . random . Random ĊĊ Ċ class ĠN fc Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm N fc Adapter : ĠN fc Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġkey A Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xff . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xff . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xff . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xff . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xff . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xff . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xff . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xff . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xff . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xff . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xff . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xff . to Byte () ĊĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xff . to Byte (), Ġ 0 xff . to Byte (), 0 xff . to Byte (), Ġ 0 xff . to Byte (), Ġ 0 xff . to Byte (), Ġ 0 xff . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xff . to Byte (), Ġ 0 xff . to Byte (), 0 xff . to Byte (), Ġ 0 xff . to Byte (), Ġ 0 xff . to Byte (), Ġ 0 xff . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xa 0 . to Byte (), Ġ 0 xa 1 . to Byte (), 0 xa 2 . to Byte (), Ġ 0 xa 3 . to Byte (), Ġ 0 xa 4 . to Byte (), Ġ 0 xa 5 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xa 0 . to Byte (), Ġ 0 xa 1 . to Byte (), 0 xa 2 . to Byte (), Ġ 0 xa 3 . to Byte (), Ġ 0 xa 4 . to Byte (), Ġ 0 xa 5 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xe 5 . to Byte (), Ġ 0 x 6 a . to Byte (), 0 xc 1 . to Byte (), Ġ 0 x 2 7 . to Byte (), Ġ 0 xdd . to Byte (), Ġ 0 x 4 5 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 x 7 7 . to Byte (), Ġ 0 xda . to Byte (), 0 xbc . to Byte (), Ġ 0 x 9 8 . to Byte (), Ġ 0 x 2 5 . to Byte (), Ġ 0 xe 1 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xff . to Byte (), Ġ 0 xff . to Byte (), 0 xff . to Byte (), Ġ 0 xff . to Byte (), Ġ 0 xff . to Byte (), Ġ 0 xff . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 x 2 0 . to Byte (), Ġ 0 x 6 6 . to Byte (), 0 xf 4 . to Byte (), Ġ 0 x 7 2 . to Byte (), Ġ 0 x 7 1 . to Byte (), Ġ 0 x 2 9 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 x 2 6 . to Byte (), Ġ 0 x 9 7 . to Byte (), 0 x 3 e . to Byte (), Ġ 0 xa 7 . to Byte (), Ġ 0 x 4 3 . to Byte (), Ġ 0 x 2 1 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xeb . to Byte (), Ġ 0 x 0 a . to Byte (), 0 x 8 f . to Byte (), Ġ 0 xf 8 . to Byte (), Ġ 0 x 8 a . to Byte (), Ġ 0 xde . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xea . to Byte (), Ġ 0 x 0 f . to Byte (), 0 xd 7 . to Byte (), Ġ 0 x 3 c . to Byte (), Ġ 0 xb 1 . to Byte (), Ġ 0 x 4 9 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xc 7 . to Byte (), Ġ 0 x 6 b . to Byte (), 0 xf 7 . to Byte (), Ġ 0 x 1 a . to Byte (), Ġ 0 x 2 5 . to Byte (), Ġ 0 x 0 9 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xac . to Byte (), Ġ 0 xff . to Byte (), 0 xff . to Byte (), Ġ 0 xff . to Byte (), Ġ 0 xff . to Byte (), Ġ 0 xff . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xac . to Byte (), Ġ 0 x 7 0 . to Byte (), 0 xac . to Byte (), Ġ 0 x 3 2 . to Byte (), Ġ 0 x 7 a . to Byte (), Ġ 0 x 0 4 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 x 5 1 . to Byte (), Ġ 0 x 0 4 . to Byte (), 0 x 4 e . to Byte (), Ġ 0 xfb . to Byte (), Ġ 0 x 5 a . to Byte (), Ġ 0 xab . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xa 0 . to Byte (), Ġ 0 xa 1 . to Byte (), 0 xa 2 . to Byte (), Ġ 0 xa 3 . to Byte (), Ġ 0 xa 4 . to Byte (), Ġ 0 xa 5 . to Byte ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ// ĠĠĠ Ġprivate Ġval Ġkey A Ġ= ĠarrayOf ( Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 x 2 c . to Byte (), Ġ 0 xad . to Byte (), Ġ 0 x 3 a . to Byte (), Ġ 0 x 7 5 . to Byte (), Ġ 0 xf 0 . to Byte (), Ġ 0 xdb . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xff . to Byte (), Ġ 0 x 0 2 . to Byte (), Ġ 0 x 0 f . to Byte (), Ġ 0 x 6 f . to Byte (), Ġ 0 xcd . to Byte (), Ġ 0 xe 2 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 x 3 8 . to Byte (), Ġ 0 xd 3 . to Byte (), Ġ 0 x 9 7 . to Byte (), Ġ 0 x 7 b . to Byte (), Ġ 0 x 3 e . to Byte (), Ġ 0 x 3 7 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 x 2 e . to Byte (), Ġ 0 x 8 7 . to Byte (), Ġ 0 x 6 5 . to Byte (), Ġ 0 x 7 4 . to Byte (), Ġ 0 x 9 7 . to Byte (), Ġ 0 x 9 4 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 x 4 5 . to Byte (), Ġ 0 x 9 6 . to Byte (), Ġ 0 x 1 b . to Byte (), Ġ 0 xbd . to Byte (), Ġ 0 x 9 b . to Byte (), Ġ 0 xbe . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xf 7 . to Byte (), Ġ 0 x 0 1 . to Byte (), Ġ 0 x 0 5 . to Byte (), Ġ 0 x 1 f . to Byte (), Ġ 0 x 8 c . to Byte (), Ġ 0 x 3 4 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xc 3 . to Byte (), Ġ 0 xdd . to Byte (), Ġ 0 x 0 b . to Byte (), Ġ 0 x 7 9 . to Byte (), Ġ 0 x 5 9 . to Byte (), Ġ 0 x 0 8 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 x 8 7 . to Byte (), Ġ 0 x 8 4 . to Byte (), Ġ 0 x 3 6 . to Byte (), Ġ 0 x 7 7 . to Byte (), Ġ 0 xf 1 . to Byte (), Ġ 0 xc 1 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 x 8 2 . to Byte (), Ġ 0 xb 4 . to Byte (), Ġ 0 x 0 1 . to Byte (), Ġ 0 xf 3 . to Byte (), Ġ 0 xea . to Byte (), Ġ 0 xdb . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 x 6 5 . to Byte (), Ġ 0 xee . to Byte (), Ġ 0 xe 2 . to Byte (), Ġ 0 x 4 6 . to Byte (), Ġ 0 xa 7 . to Byte (), Ġ 0 x 6 2 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 x 9 3 . to Byte (), Ġ 0 xcb . to Byte (), Ġ 0 x 6 f . to Byte (), Ġ 0 x 3 6 . to Byte (), Ġ 0 x 7 8 . to Byte (), Ġ 0 x 7 5 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xab . to Byte (), Ġ 0 x 7 6 . to Byte (), Ġ 0 xe 3 . to Byte (), Ġ 0 xe 4 . to Byte (), Ġ 0 x 8 e . to Byte (), Ġ 0 x 0 1 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xca . to Byte (), Ġ 0 x 2 1 . to Byte (), Ġ 0 xd 7 . to Byte (), Ġ 0 xd 1 . to Byte (), Ġ 0 xe 9 . to Byte (), Ġ 0 xbd . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xe 3 . to Byte (), Ġ 0 x 5 a . to Byte (), Ġ 0 xe 2 . to Byte (), Ġ 0 xd 6 . to Byte (), Ġ 0 x 1 1 . to Byte (), Ġ 0 x 8 7 . to Byte ()), Ċ // ĠĠĠĠĠĠĠ Ġbyte ArrayOf ( 0 xc 7 . to Byte (), Ġ 0 x 6 5 . to Byte (), Ġ 0 x 0 6 . to Byte (), Ġ 0 x 0 2 . to Byte (), Ġ 0 xd 3 . to Byte (), Ġ 0 xf 5 . to Byte ()) Ċ // ĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġkey B Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 8 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 1 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 2 3 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 3 a . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xe 8 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 3 7 . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 1 a . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 2 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xcb . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 8 e . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 8 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 2 0 . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xe 2 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 8 3 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xd 6 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 4 5 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 9 a . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xac . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 2 8 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 5 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 2 b . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xbb . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xae . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xea . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 8 b . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 3 0 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xa 3 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xca . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xf 2 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 5 7 . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xab . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xf 0 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 5 d . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 8 1 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 8 a . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 0 . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xda . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 8 a . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xe 2 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xf 6 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xe 8 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xdc . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 2 3 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 8 b . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 9 1 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xc 4 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 4 0 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xc 8 . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 e . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xd 9 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 3 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 4 3 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xad . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xd 6 . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xd 0 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 2 e . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xee . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 5 f . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 5 e . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xa 8 . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 1 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 5 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xf 3 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 1 1 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xea . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 5 c . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 5 f . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 9 7 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 9 7 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 3 0 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 9 8 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 3 8 . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xfe . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 e . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 2 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xe 9 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 4 0 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 d . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 7 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 c . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 1 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 4 d . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 3 9 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xb 8 . to Byte () ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbyte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xe 3 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 b . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xea . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 5 5 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 3 c . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 8 . to Byte () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġvar Ġm N fc Pending Intent : ĠPending Intent ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval ĠN FC _ TAG Ġ= Ġ" android . n fc . extra . TAG " ĊĠĠĠ Ġprivate Ġvar Ġn fc Action Ġ= ĠN fc Action . READ _ FOR _ LOGIN ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlogin Extra : ĠString ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ n _ f _ c ) ĊĊĠĠĠĠĠĠĠ Ġn fc Action Ġ= Ġintent . getInt Extra (" n fc Action ", ĠN fc Action . READ _ FOR _ LOGIN ) ĊĠĠĠĠĠĠĠ Ġlogin Extra Ġ= Ġintent . getString Extra (" login "). toString () Ċ // ĠĠĠĠĠĠĠ Ġhard Coded Login () Ċ // ĠĠĠĠĠĠĠ Ġhard Coded Register 3 () Ċ // ĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ// ĠTODO Ġenable Ġdialog Ċ // ĠĠĠĠĠĠĠ Ġshow N fc Card Dialog () ĊĠĠĠĠĠĠĠ Ġm N fc Adapter Ġ= ĠN fc Adapter . getDefault Adapter ( this ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m N fc Adapter Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . append (" Does n 't Ġsupport Ġn fc \ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity ", Ġ" Does n 't Ġsupport Ġn fc ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity ", Ġ" N FC Ġsupported ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm N fc Pending Intent Ġ= ĠPending Intent . getActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( this , Ġjava Class ). add Flags ( Intent . FLAG _ ACTIVITY _ SINGLE _ TOP ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( intent . action Ġ== ĠN fc Adapter . ACTION _ TAG _ DIS COVER ED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow N fc Card Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠ Ġdialog . setTitle (" Auth Activity ") ĊĠĠĠĠĠĠĠ Ġdialog . setMessage ( getString ( R . string . insert _ card _ notif )) ĊĠĠĠĠĠĠĠ Ġdialog . set Cancel able ( true ) ĊĠĠĠĠĠĠĠ Ġdialog . set Neutral Button (" Ok ") Ġ{ Ġdialog Context , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , Ġ" Ok ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġdisable N fc Foreground Dispatch () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon New Intent ( intent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on New Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġif Ġ( intent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" N fc Activity ", Ġ" intent Ġaction : Ġ" Ġ+ Ġintent . action . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( N fc Adapter . ACTION _ TAG _ DIS COVER ED Ġ== Ġintent . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Intent ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget N fc Tag ( intent : ĠIntent ): ĠTag ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtag Ġ= Ġintent . get Parcelable Extra < Tag >( N FC _ TAG ) ĊĠĠĠĠĠĠĠ Ġif Ġ( tag Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" test Ġtag ", Ġ" No pe ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtag ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbig Endian Conversion ( bytes : ĠByteArray ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġvalue : ĠLong Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( element Ġin Ġbytes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ( value Ġshl Ġ 8 ) Ġ+ Ġ( element . toInt () Ġand Ġ 0 xff ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġread Login ( mfc : ĠM if are Classic ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! mfc . authenticate Sector With Key A ( 5 , Ġkey A [ 0 ])) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠWrong Sector Key Exception () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsector 5 Ġ= Ġm fc . getS ector ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sector 5 [ 0 ][ 0 ] Ġ== Ġ 0 x 0 0 . to Byte ()) Ġreturn Ġ" null " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm fc . read Until Null ( sector 5 [ 0 ]). toString ( Charsets . UTF _ 8 ). replace ("\ u 0 0 0 0 ", Ġ"") ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" N fc Activity ", Ġ" Error : Ġ$ e ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ" null " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġread Card Number ( mfc : ĠM if are Classic ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! mfc . authenticate Sector With Key A ( 1 5 , Ġkey A [ 0 ])) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠWrong Sector Key Exception () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsector 1 5 Ġ= Ġm fc . getS ector ( 1 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity ", Ġm fc . read Until Null ( sector 1 5 [ 0 ]). to HexString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbig Endian Conversion ( mfc . read Until Null ( sector 1 5 [ 0 ])) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" N fc Activity ", Ġ" Error : Ġ$ e ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhard Coded Login () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġ" ml sd mit ry " Ċ // ĠĠĠĠĠĠĠ ĠD AB 7 1 F 5 6 ĊĠĠĠĠĠĠĠ Ġval Ġuid Ġ= Ġbyte ArrayOf ( 0 x DA . to Byte (), Ġ 0 xB 7 . to Byte (), Ġ 0 x 1 F . to Byte (), Ġ 0 x 5 6 . to Byte ()) ĊĠĠĠĠĠĠĠ Ġval Ġcard Number Ġ= Ġ 1 2 3 2 3 8 7 1 4 4 4 9 1 9 2 5 8 ĊĠĠĠĠĠĠĠ Ġval Ġfake Intent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" uid ", Ġuid ) ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" login ", Ġlogin ) ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" card Number ", Ġcard Number ) ĊĠĠĠĠĠĠĠ Ġset Result ( RESULT _ OK , Ġfake Intent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhard Coded Register 1 () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity ", Ġ" hard Coded Register 1 : Ġ$ n fc Action ") ĊĠĠĠĠĠĠĠ Ġval Ġuid Ġ= Ġbyte ArrayOf ( 0 x DA . to Byte (), Ġ 0 xB 7 . to Byte (), Ġ 0 x 1 F . to Byte (), Ġ 0 x 5 6 . to Byte ()) ĊĠĠĠĠĠĠĠ Ġval Ġcard Number Ġ= Ġ 1 2 3 2 3 8 7 1 4 4 4 9 1 9 2 5 8 ĊĠĠĠĠĠĠĠ Ġval Ġfake Intent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" n fc Action ", Ġn fc Action ) ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" uid ", Ġuid ) ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" card Number ", Ġcard Number ) ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" success ", Ġtrue ) ĊĠĠĠĠĠĠĠ Ġif Ġ( n fc Action Ġ== ĠN fc Action . WRITE _ LOGIN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" login ", Ġ" ml sd mit ry ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Result ( RESULT _ OK , Ġfake Intent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Experimental Unsigned Types ĊĠĠĠ Ġfun Ġhard Coded Register 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInvalid ĠCard Ġnumber ĊĠĠĠĠĠĠĠ Ġval Ġuid Ġ= Ġbyte ArrayOf ( 0 x DA . to Byte (), Ġ 0 xB 7 . to Byte (), Ġ 0 x 1 F . to Byte (), Ġ 0 x 5 6 . to Byte ()) ĊĠĠĠĠĠĠĠ Ġval Ġcard Number Ġ= ĠRandom . next Long ( 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , Ġ 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ) ĊĠĠĠĠĠĠĠ Ġval Ġfake Intent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" uid ", Ġuid ) ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" card Number ", Ġcard Number ) ĊĠĠĠĠĠĠĠ Ġif Ġ( n fc Action Ġ== ĠN fc Action . READ _ ONLY _ UID ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" check Uid ", Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Result ( RESULT _ OK , Ġfake Intent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠByteArray . to HexString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . join ToString ("") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava . lang . String . format ("% 0 2 x ", Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhard Coded Register 3 () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠU id Ġchanged ĊĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity ", Ġ" hard Coded Register 1 : Ġ$ n fc Action ") ĊĠĠĠĠĠĠĠ Ġvar Ġuid : ĠByteArray ĊĠĠĠĠĠĠĠ Ġuid Ġ= Ġbyte ArrayOf ( 0 x DA . to Byte (), Ġ 0 xB 7 . to Byte (), Ġ 0 x 1 F . to Byte (), Ġ 0 x 5 6 . to Byte ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( n fc Action Ġ== ĠN fc Action . READ _ ONLY _ UID ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuid Ġ= Ġbyte ArrayOf ( 0 x DA . to Byte (), Ġ 0 xB 7 . to Byte (), Ġ 0 x 1 F . to Byte (), Ġ 0 x 5 5 . to Byte ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity : 2 4 0 ", Ġuid . to HexString ()) ĊĠĠĠĠĠĠĠ Ġval Ġcard Number Ġ= Ġ 1 2 3 2 3 8 7 1 4 4 4 9 1 9 2 5 8 ĊĠĠĠĠĠĠĠ Ġval Ġfake Intent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" uid ", Ġuid ) ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" card Number ", Ġcard Number ) ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" n fc Action ", Ġn fc Action ) ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" success ", Ġtrue ) ĊĠĠĠĠĠĠĠ Ġif Ġ( n fc Action Ġ== ĠN fc Action . WRITE _ LOGIN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" login ", Ġ" ml sd mit ry ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Result ( RESULT _ OK , Ġfake Intent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwrite Login ( mfc : ĠM if are Classic , Ġlogin : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ 5 Ġsector Ġ- Ġlogin Ġfield ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! mfc . authenticate Sector With Key A ( 5 , Ġkey A [ 0 ])) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠWrong Sector Key Exception () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! mfc . authenticate Sector With Key B ( 5 , Ġkey A [ 0 ])) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠWrong Sector Key Exception () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm fc . write Login ( 5 , Ġlogin . pad End ( 1 6 , Ġ 0 x 0 0 . to Char ()). toByteArray ( Charsets . UTF _ 8 )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity : 3 6 7 ", Ġ" Written Ġto Ġcard ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity ", Ġ" Failed Ġto Ġwrite Ġlogin Ġdata ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprocess Intent ( intent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġget N fc Tag ( intent ) ĊĠĠĠĠĠĠĠ Ġvar Ġuid Ġ= Ġintent . get ByteArray Extra (" android . n fc . extra . ID ") ĊĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity ", Ġ" in Ġprocess Intent () ") ĊĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity : 3 7 6 ", Ġ" Action : Ġ$ n fc Action ") ĊĠĠĠĠĠĠĠ Ġval Ġm fc : ĠM if are Classic ? Ġ= Ġtag ?. getM if are Tag Or Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMC Utils (). patch Tag ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( mfc Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity ", Ġ" Couldn 't Ġread , Ġtry Ġnext Ġtime ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm fc . connect () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity ", Ġ" Couldn 't Ġconnect ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġfake Intent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġvar Ġlogin Ġ= Ġread Login ( mfc ) ĊĠĠĠĠĠĠĠ Ġval Ġcard Number : ĠLong Ġ= Ġread Card Number ( mfc ) ĊĠĠĠĠĠĠĠ Ġ// ĠTODO Ġadd Ġother Ġswitches Ġex : ĠREAD _ ONLY _ UID ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" n fc Action ", Ġn fc Action ) ĊĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" uid ", Ġuid ) ĊĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity : 3 9 8 ", Ġintent . getString Extra (" login "). toString ()) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( n fc Action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠN fc Action . READ _ FOR _ LOGIN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlogin : ĠString , Ġcard Number : ĠLong ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" login ", Ġlogin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" card Number ", Ġcard Number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠN fc Action . READ _ FOR _ REGISTR ATION Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġuid : ĠByteArray , Ġlogin : ĠString , Ġcard Number : ĠLong ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" login ", Ġlogin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" card Number ", Ġcard Number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠN fc Action . WRITE _ LOGIN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity : 4 1 2 ", Ġ" Login : Ġ$ login Extra ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrite Login ( mfc , Ġlogin Extra ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" success ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" login ", Ġread Login ( mfc )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" card Number ", Ġcard Number ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" N fc Activity : 4 1 5 ", Ġ" Error : Ġ$ e ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfake Intent . putExtra (" success ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLog . d (" N fc Activity ", Ġ" Login : Ġ${ read Login ( mfc )}; Ġcard Number : Ġ$ card Number ") ĊĊĠĠĠĠĠĠĠ Ġif Ġ( card Number Ġ== Ġ 0 . to Long ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġset Result ( RESULT _ OK , Ġfake Intent ) ĊĠĠĠĠĠĠĠ Ġm fc . close () ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġif Ġ( m N fc Adapter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m N fc Adapter !!. isEnabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm N fc Adapter !!. enable Foreground Dispatch ( this , Ġm N fc Pending Intent , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisable N fc Foreground Dispatch () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm N fc Adapter ?. disable Foreground Dispatch ( this ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" N fc Activity ", Ġ" Error Ġdisabling ĠN FC Ġforeground Ġdispatch ", Ġex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck N fc Enabled () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġn fc Enabled Ġ= Ġm N fc Adapter ?. isEnabled ĊĠĠĠĠĠĠĠ Ġif Ġ( n fc Enabled Ġ!= Ġnull Ġ&& Ġ! n fc Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( Settings . ACTION _ WI RE LESS _ SETTINGS )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }