#Region Project Attributes
#ApplicationLabel: b4aTapCard
#VersionCode: 1
#VersionName:
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
#End Region
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region
Sub Process_Globals
Private xui As XUI
End Sub
Sub Globals
Dim tapcard As TapCard
Dim prevIntent As Intent
Dim ips As InputStream
Private Label1 As Label
Dim mbm As Bitmap
Private ImageView1 As ImageView
Private EditText1, EditText2 As EditText
Dim tgname As List
Dim tg As List
Dim tglength As List
Dim tgvalue As List
Dim kvs As KeyValueStore
Private ToggleButton1 As ToggleButton
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout")
If File.Exists(File.DirInternal, "read.kvs") Then
Log("file exists")
Else
kvs.Initialize(File.DirInternal, "read.kvs")
kvs.Put("flag", 0)
Log("made a file")
End If
kvs.Initialize(File.DirInternal, "read.kvs")
If 0 = kvs.Get("flag") Then
tapcard.EnableRead = False
ToggleButton1.Checked = False
Else
tapcard.EnableRead = True
ToggleButton1.Checked = True
End If
Log("IN ACTIVITY_CREATE")
tgname.Initialize
tg.Initialize
tglength.Initialize
tgvalue.Initialize
Label1.Visible = False
EditText1.Color = Colors.LightGray
EditText2.Color = Colors.Cyan
tapcard.Initialize("ips")
ips = File.OpenInput(File.DirAssets,"smartcard_list.txt")
mbm.Initialize(File.DirAssets, "tapimage.png")
ImageView1.Bitmap = mbm
ImageView1.Visible = True
Label1.Visible = False
EditText1.Visible = False
EditText2.Visible = False
tapcard.IPS = ips
End Sub
Sub Activity_Resume
tgname.Clear
tg.Clear
tglength.clear
tgvalue.clear
EditText1.Text = "YOU CAN SCROLL ME UP/DOWN TO VIEW ALL COMMANDS/RESPONSES" & CRLF & CRLF
EditText2.Text = "YOU CAN SCROLL ME UP/DOWN TO VIEW ALL TAG INFO" & CRLF & CRLF
Dim si As Intent = Activity.GetStartingIntent
If si.IsInitialized = False Or si = prevIntent Then Return
prevIntent = si
If si.Action.EndsWith("TECH_DISCOVERED") Or si.Action.EndsWith("NDEF_DISCOVERED") Or si.Action.EndsWith("TAG_DISCOVERED") Then
If si.Action.EndsWith("TECH_DISCOVERED") Then
ToastMessageShow("TECH_DISCOVERED", False)
Else If si.Action.EndsWith("NDEF_DISCOVERED") Then
ToastMessageShow("NDEF_DISCOVERED", False)
Else If si.Action.EndsWith("TAG_DISCOVERED") Then
ToastMessageShow("TAG_DISCOVERED", False)
Else
ToastMessageShow("NOTHING_DISCOVERED", False)
End If
Label1.Visible = True
ImageView1.Visible = False
EditText1.Visible = False
EditText2.Visible = False
End If
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub ips_scan_result(cardNumber As String, cardType As String, expireDate As String, cardHolderLastname As String, cardHolderFirstname As String, isNfcLocked As Boolean)
Label1.Text = ""
ImageView1.Visible = False
Label1.Visible = True
Label1.Text = "CardNumber: " & cardNumber & CRLF & "cardType: " & cardType & CRLF & "expireDate: " & expireDate & CRLF _
& "Card Holder Last Name: " & cardHolderLastname & CRLF & "Card Holder First Name : " & cardHolderFirstname _
& CRLF & "isNfcLocked : " & isNfcLocked
EditText1.Visible = True
EditText2.Visible = True
End Sub
Sub ips_command_response(command As String, response As String)
Log("COMMAND = " & command)
Log("RESPONSE = " & response)
EditText1.Text = EditText1.Text & "COMMAND: " & CRLF & command & CRLF & "RESPONSE: " & response & CRLF & CRLF
Log(" ")
End Sub
Sub ips_tag_data (tagname As String, tags As String, taglengths As String, tagvalues As String)
EditText2.Visible = True
tgname.Add(tagname)
tg.Add(tags)
tglength.Add(taglengths)
tgvalue.Add(tagvalues)
End Sub
Sub ips_scan_completed
Log("In B4A and scan completed")
Log("ATR = " & tapcard.CardATRValue)
Log("Possible Banks = " & tapcard.PossibleBankInfo)
Label1.Text = Label1.Text & CRLF & "ATR: " & tapcard.CardATRValue & CRLF & _
"Possible Banks: " & tapcard.PossibleBankInfo
For i = 0 To tgname.Size - 1
EditText2.Text = EditText2.Text & CRLF &"TagName: " &tgname.Get(i)
EditText2.Text = EditText2.Text & CRLF & "Tag: " & tg.Get(i)
EditText2.Text = EditText2.Text & CRLF & "TagLength: " & tglength.Get(i)
EditText2.Text = EditText2.Text & CRLF & "TagValue: " & tgvalue.Get(i) & CRLF
Next
End Sub
#If Java
public void _onnewintent (android.content.Intent intent) {
BA.Log("IN B4A ONNEWINTENT");
}
public void _onresume () {
}
public void _onpause () {
}
#End If
Private Sub Label1_Click
Label1.Visible = False
ImageView1.Visible = True
EditText1.Visible = False
EditText1.Text = ""
EditText2.Visible = False
EditText2.Text = ""
tgname.Clear
tg.Clear
tglength.clear
tgvalue.clear
End Sub
Private Sub ToggleButton1_CheckedChange(Checked As Boolean)
If ToggleButton1.Checked = False Then
tapcard.EnableRead = False
kvs.Initialize(File.DirInternal, "read.kvs")
kvs.Put("flag", 0)
Else
tapcard.EnableRead = True
kvs.Initialize(File.DirInternal, "read.kvs")
kvs.Put("flag", 1)
End If
End Sub