- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3 - APKTool decompilation (Smali bytecode) for modding and rebuilding APK - Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures - Includes full Smali source, resources, and native libraries - Ready to rebuild APK after modifications with apktool b command - Added comprehensive README-apktool.md with modding guide This branch complements the JADX branches: - Use JADX (main/discord-community) to UNDERSTAND code (readable Java) - Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali) Total: 44,417 files, 538.51 MB Smali source code
880 lines
22 KiB
Smali
880 lines
22 KiB
Smali
.class public Lcom/firemint/realracing/fmNfcManager;
|
|
.super Ljava/lang/Object;
|
|
.source "SourceFile"
|
|
|
|
# interfaces
|
|
.implements Landroid/nfc/NfcAdapter$CreateNdefMessageCallback;
|
|
|
|
|
|
# annotations
|
|
.annotation system Ldalvik/annotation/MemberClasses;
|
|
value = {
|
|
Lcom/firemint/realracing/fmNfcManager$NfcMode;
|
|
}
|
|
.end annotation
|
|
|
|
|
|
# static fields
|
|
.field static m_bLog:Z = true
|
|
|
|
|
|
# instance fields
|
|
.field m_activity:Lcom/firemint/realracing/MainActivity;
|
|
|
|
.field m_bForegroundDispatchEnabled:Z
|
|
|
|
.field m_eNfcMode:Lcom/firemint/realracing/fmNfcManager$NfcMode;
|
|
|
|
.field m_fmNfcData:Lcom/firemint/realracing/fmNfcData;
|
|
|
|
.field m_ndefMessage:Landroid/nfc/NdefMessage;
|
|
|
|
.field m_nfcAdapter:Landroid/nfc/NfcAdapter;
|
|
|
|
|
|
# direct methods
|
|
.method static constructor <clinit>()V
|
|
.locals 0
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>()V
|
|
.locals 2
|
|
|
|
.line 78
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
|
|
const/4 v0, 0x0
|
|
|
|
iput-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_ndefMessage:Landroid/nfc/NdefMessage;
|
|
|
|
iput-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_fmNfcData:Lcom/firemint/realracing/fmNfcData;
|
|
|
|
.line 34
|
|
sget-object v1, Lcom/firemint/realracing/fmNfcManager$NfcMode;->NfcMode_Read:Lcom/firemint/realracing/fmNfcManager$NfcMode;
|
|
|
|
iput-object v1, p0, Lcom/firemint/realracing/fmNfcManager;->m_eNfcMode:Lcom/firemint/realracing/fmNfcManager$NfcMode;
|
|
|
|
iput-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_activity:Lcom/firemint/realracing/MainActivity;
|
|
|
|
iput-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_nfcAdapter:Landroid/nfc/NfcAdapter;
|
|
|
|
const/4 v0, 0x0
|
|
|
|
iput-boolean v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_bForegroundDispatchEnabled:Z
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static Log(Ljava/lang/String;)V
|
|
.locals 1
|
|
|
|
sget-boolean v0, Lcom/firemint/realracing/fmNfcManager;->m_bLog:Z
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 57
|
|
invoke-virtual {p0}, Ljava/lang/String;->length()I
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public static LogSeparator()V
|
|
.locals 1
|
|
|
|
const-string v0, "--------------------"
|
|
|
|
.line 64
|
|
invoke-static {v0}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
|
|
# virtual methods
|
|
.method public CreateNdefMessage([B)Landroid/nfc/NdefMessage;
|
|
.locals 4
|
|
|
|
.line 410
|
|
new-instance v0, Lcom/firemint/realracing/fmNfcData;
|
|
|
|
invoke-direct {v0, p1}, Lcom/firemint/realracing/fmNfcData;-><init>([B)V
|
|
|
|
iput-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_fmNfcData:Lcom/firemint/realracing/fmNfcData;
|
|
|
|
const-string p1, "externaltype"
|
|
|
|
.line 412
|
|
invoke-virtual {v0}, Lcom/firemint/realracing/fmNfcData;->GetByteArray()[B
|
|
|
|
move-result-object v0
|
|
|
|
const-string v1, "com.ea.games.r3_na"
|
|
|
|
invoke-static {v1, p1, v0}, Landroid/nfc/NdefRecord;->createExternal(Ljava/lang/String;Ljava/lang/String;[B)Landroid/nfc/NdefRecord;
|
|
|
|
move-result-object p1
|
|
|
|
iget-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_activity:Lcom/firemint/realracing/MainActivity;
|
|
|
|
.line 413
|
|
invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-static {v0}, Landroid/nfc/NdefRecord;->createApplicationRecord(Ljava/lang/String;)Landroid/nfc/NdefRecord;
|
|
|
|
move-result-object v0
|
|
|
|
.line 415
|
|
new-instance v1, Landroid/nfc/NdefMessage;
|
|
|
|
const/4 v2, 0x2
|
|
|
|
new-array v2, v2, [Landroid/nfc/NdefRecord;
|
|
|
|
const/4 v3, 0x0
|
|
|
|
aput-object p1, v2, v3
|
|
|
|
const/4 p1, 0x1
|
|
|
|
aput-object v0, v2, p1
|
|
|
|
invoke-direct {v1, v2}, Landroid/nfc/NdefMessage;-><init>([Landroid/nfc/NdefRecord;)V
|
|
|
|
return-object v1
|
|
.end method
|
|
|
|
.method public DisableForegroundDispatch()V
|
|
.locals 2
|
|
|
|
.line 374
|
|
invoke-virtual {p0}, Lcom/firemint/realracing/fmNfcManager;->IsNfcAvailable()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget-boolean v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_bForegroundDispatchEnabled:Z
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_activity:Lcom/firemint/realracing/MainActivity;
|
|
|
|
.line 376
|
|
new-instance v1, Lcom/firemint/realracing/fmNfcManager$2;
|
|
|
|
invoke-direct {v1, p0}, Lcom/firemint/realracing/fmNfcManager$2;-><init>(Lcom/firemint/realracing/fmNfcManager;)V
|
|
|
|
invoke-virtual {v0, v1}, Landroid/app/Activity;->runOnUiThread(Ljava/lang/Runnable;)V
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public EnableForegroundDispatch()V
|
|
.locals 2
|
|
|
|
.line 336
|
|
invoke-virtual {p0}, Lcom/firemint/realracing/fmNfcManager;->IsNfcAvailable()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget-boolean v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_bForegroundDispatchEnabled:Z
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
iget-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_activity:Lcom/firemint/realracing/MainActivity;
|
|
|
|
.line 338
|
|
new-instance v1, Lcom/firemint/realracing/fmNfcManager$1;
|
|
|
|
invoke-direct {v1, p0}, Lcom/firemint/realracing/fmNfcManager$1;-><init>(Lcom/firemint/realracing/fmNfcManager;)V
|
|
|
|
invoke-virtual {v0, v1}, Landroid/app/Activity;->runOnUiThread(Ljava/lang/Runnable;)V
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public native GetNfcDataToTransmitJNI()[B
|
|
.end method
|
|
|
|
.method public HandleIntent(Landroid/content/Intent;)V
|
|
.locals 2
|
|
|
|
const-string v0, "HandleIntent"
|
|
|
|
.line 126
|
|
invoke-static {v0}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
if-eqz p1, :cond_2
|
|
|
|
.line 129
|
|
invoke-virtual {p1}, Landroid/content/Intent;->getAction()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 131
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v1, "Intent action: "
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {p1}, Landroid/content/Intent;->getAction()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-static {v0}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
.line 134
|
|
:cond_0
|
|
invoke-virtual {p0}, Lcom/firemint/realracing/fmNfcManager;->IsNfcAvailable()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
iget-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_eNfcMode:Lcom/firemint/realracing/fmNfcManager$NfcMode;
|
|
|
|
.line 136
|
|
sget-object v1, Lcom/firemint/realracing/fmNfcManager$NfcMode;->NfcMode_Read:Lcom/firemint/realracing/fmNfcManager$NfcMode;
|
|
|
|
if-ne v0, v1, :cond_1
|
|
|
|
const-string v0, "Read NFC message"
|
|
|
|
.line 138
|
|
invoke-static {v0}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
.line 139
|
|
invoke-virtual {p0, p1}, Lcom/firemint/realracing/fmNfcManager;->ReadNfcMessage(Landroid/content/Intent;)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const-string v0, "Write NFC message"
|
|
|
|
.line 143
|
|
invoke-static {v0}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
.line 144
|
|
invoke-virtual {p0, p1}, Lcom/firemint/realracing/fmNfcManager;->WriteNfcMessage(Landroid/content/Intent;)V
|
|
|
|
:cond_2
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public Initalise(Ljava/lang/Object;)V
|
|
.locals 1
|
|
|
|
.line 83
|
|
instance-of v0, p1, Landroid/app/Activity;
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const-string p1, "Failed to cast object to activity :("
|
|
|
|
.line 85
|
|
invoke-static {p1}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 89
|
|
:cond_0
|
|
check-cast p1, Lcom/firemint/realracing/MainActivity;
|
|
|
|
iput-object p1, p0, Lcom/firemint/realracing/fmNfcManager;->m_activity:Lcom/firemint/realracing/MainActivity;
|
|
|
|
:goto_0
|
|
iget-object p1, p0, Lcom/firemint/realracing/fmNfcManager;->m_activity:Lcom/firemint/realracing/MainActivity;
|
|
|
|
.line 92
|
|
invoke-static {p1}, Landroid/nfc/NfcAdapter;->getDefaultAdapter(Landroid/content/Context;)Landroid/nfc/NfcAdapter;
|
|
|
|
move-result-object p1
|
|
|
|
iput-object p1, p0, Lcom/firemint/realracing/fmNfcManager;->m_nfcAdapter:Landroid/nfc/NfcAdapter;
|
|
|
|
if-eqz p1, :cond_1
|
|
|
|
.line 99
|
|
invoke-virtual {p0}, Lcom/firemint/realracing/fmNfcManager;->EnableForegroundDispatch()V
|
|
|
|
:cond_1
|
|
return-void
|
|
.end method
|
|
|
|
.method public IsNfcAvailable()Z
|
|
.locals 1
|
|
|
|
iget-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_nfcAdapter:Landroid/nfc/NfcAdapter;
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
iget-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_activity:Lcom/firemint/realracing/MainActivity;
|
|
|
|
.line 71
|
|
invoke-static {v0}, Landroid/nfc/NfcAdapter;->getDefaultAdapter(Landroid/content/Context;)Landroid/nfc/NfcAdapter;
|
|
|
|
move-result-object v0
|
|
|
|
iput-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_nfcAdapter:Landroid/nfc/NfcAdapter;
|
|
|
|
:cond_0
|
|
iget-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_nfcAdapter:Landroid/nfc/NfcAdapter;
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
const/4 v0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/4 v0, 0x0
|
|
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method public native NfcMessageReceivedJNI([BI)V
|
|
.end method
|
|
|
|
.method public ReadNfcMessage(Landroid/content/Intent;)V
|
|
.locals 5
|
|
|
|
const-string v0, "android.nfc.extra.NDEF_MESSAGES"
|
|
|
|
.line 153
|
|
invoke-virtual {p1, v0}, Landroid/content/Intent;->getParcelableArrayExtra(Ljava/lang/String;)[Landroid/os/Parcelable;
|
|
|
|
move-result-object p1
|
|
|
|
if-eqz p1, :cond_4
|
|
|
|
const-string v0, "Received a message :)"
|
|
|
|
.line 156
|
|
invoke-static {v0}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
.line 157
|
|
array-length v0, p1
|
|
|
|
if-lez v0, :cond_3
|
|
|
|
.line 159
|
|
array-length v0, p1
|
|
|
|
const/4 v1, 0x0
|
|
|
|
move v2, v1
|
|
|
|
:goto_0
|
|
if-ge v2, v0, :cond_5
|
|
|
|
aget-object v3, p1, v2
|
|
|
|
.line 161
|
|
check-cast v3, Landroid/nfc/NdefMessage;
|
|
|
|
if-eqz v3, :cond_2
|
|
|
|
.line 164
|
|
invoke-virtual {v3}, Landroid/nfc/NdefMessage;->getRecords()[Landroid/nfc/NdefRecord;
|
|
|
|
move-result-object v3
|
|
|
|
.line 165
|
|
array-length v4, v3
|
|
|
|
if-lez v4, :cond_1
|
|
|
|
.line 168
|
|
aget-object v3, v3, v1
|
|
|
|
if-eqz v3, :cond_0
|
|
|
|
.line 171
|
|
new-instance v4, Lcom/firemint/realracing/fmNfcData;
|
|
|
|
invoke-direct {v4}, Lcom/firemint/realracing/fmNfcData;-><init>()V
|
|
|
|
.line 172
|
|
invoke-virtual {v3}, Landroid/nfc/NdefRecord;->getPayload()[B
|
|
|
|
move-result-object v3
|
|
|
|
invoke-virtual {v4, v3}, Lcom/firemint/realracing/fmNfcData;->Import([B)V
|
|
|
|
iget-object v3, v4, Lcom/firemint/realracing/fmNfcData;->m_data:[B
|
|
|
|
const-string v4, "NfcMessageReceivedJNI"
|
|
|
|
.line 176
|
|
invoke-static {v4}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
.line 177
|
|
array-length v4, v3
|
|
|
|
invoke-virtual {p0, v3, v4}, Lcom/firemint/realracing/fmNfcManager;->NfcMessageReceivedJNI([BI)V
|
|
|
|
goto :goto_1
|
|
|
|
:cond_0
|
|
const-string v3, "NdefRecord record was null"
|
|
|
|
.line 181
|
|
invoke-static {v3}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
const-string v3, "NdefRecord[] records length = 0"
|
|
|
|
.line 186
|
|
invoke-static {v3}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
goto :goto_1
|
|
|
|
:cond_2
|
|
const-string v3, "Parcelable parcelableMessage was null"
|
|
|
|
.line 191
|
|
invoke-static {v3}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
:goto_1
|
|
add-int/lit8 v2, v2, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_3
|
|
const-string p1, "Parcelable[] messages length = 0"
|
|
|
|
.line 197
|
|
invoke-static {p1}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
goto :goto_2
|
|
|
|
:cond_4
|
|
const-string p1, "Parcelable[] messages was null"
|
|
|
|
.line 202
|
|
invoke-static {p1}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
:cond_5
|
|
:goto_2
|
|
return-void
|
|
.end method
|
|
|
|
.method public SetNfcDataJNI([B)V
|
|
.locals 2
|
|
.annotation build Landroid/annotation/TargetApi;
|
|
value = 0x10
|
|
.end annotation
|
|
|
|
iget-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_activity:Lcom/firemint/realracing/MainActivity;
|
|
|
|
.line 392
|
|
new-instance v1, Lcom/firemint/realracing/fmNfcManager$3;
|
|
|
|
invoke-direct {v1, p0, p1}, Lcom/firemint/realracing/fmNfcManager$3;-><init>(Lcom/firemint/realracing/fmNfcManager;[B)V
|
|
|
|
invoke-virtual {v0, v1}, Landroid/app/Activity;->runOnUiThread(Ljava/lang/Runnable;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public SetNfcMode(I)V
|
|
.locals 1
|
|
|
|
if-nez p1, :cond_0
|
|
|
|
const-string p1, "Undefined mode!"
|
|
|
|
.line 427
|
|
invoke-static {p1}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 v0, 0x1
|
|
|
|
if-ne p1, v0, :cond_1
|
|
|
|
.line 431
|
|
sget-object p1, Lcom/firemint/realracing/fmNfcManager$NfcMode;->NfcMode_Read:Lcom/firemint/realracing/fmNfcManager$NfcMode;
|
|
|
|
invoke-virtual {p0, p1}, Lcom/firemint/realracing/fmNfcManager;->SetNfcMode(Lcom/firemint/realracing/fmNfcManager$NfcMode;)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/4 v0, 0x2
|
|
|
|
if-ne p1, v0, :cond_2
|
|
|
|
.line 435
|
|
sget-object p1, Lcom/firemint/realracing/fmNfcManager$NfcMode;->NfcMode_Write:Lcom/firemint/realracing/fmNfcManager$NfcMode;
|
|
|
|
invoke-virtual {p0, p1}, Lcom/firemint/realracing/fmNfcManager;->SetNfcMode(Lcom/firemint/realracing/fmNfcManager$NfcMode;)V
|
|
|
|
:cond_2
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public SetNfcMode(Lcom/firemint/realracing/fmNfcManager$NfcMode;)V
|
|
.locals 1
|
|
|
|
iput-object p1, p0, Lcom/firemint/realracing/fmNfcManager;->m_eNfcMode:Lcom/firemint/realracing/fmNfcManager$NfcMode;
|
|
|
|
.line 39
|
|
sget-object v0, Lcom/firemint/realracing/fmNfcManager$NfcMode;->NfcMode_Read:Lcom/firemint/realracing/fmNfcManager$NfcMode;
|
|
|
|
if-ne p1, v0, :cond_0
|
|
|
|
const-string p1, "Setting mode to read"
|
|
|
|
.line 41
|
|
invoke-static {p1}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 43
|
|
:cond_0
|
|
sget-object v0, Lcom/firemint/realracing/fmNfcManager$NfcMode;->NfcMode_Write:Lcom/firemint/realracing/fmNfcManager$NfcMode;
|
|
|
|
if-ne p1, v0, :cond_1
|
|
|
|
const-string p1, "Setting mode to write"
|
|
|
|
.line 45
|
|
invoke-static {p1}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
:cond_1
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public WriteNfcMessage(Landroid/content/Intent;)V
|
|
.locals 2
|
|
|
|
const-string v0, "android.nfc.extra.TAG"
|
|
|
|
.line 208
|
|
invoke-virtual {p1, v0}, Landroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable;
|
|
|
|
move-result-object p1
|
|
|
|
check-cast p1, Landroid/nfc/Tag;
|
|
|
|
if-eqz p1, :cond_1
|
|
|
|
iget-object v0, p0, Lcom/firemint/realracing/fmNfcManager;->m_fmNfcData:Lcom/firemint/realracing/fmNfcData;
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget-object v1, p0, Lcom/firemint/realracing/fmNfcManager;->m_activity:Lcom/firemint/realracing/MainActivity;
|
|
|
|
.line 213
|
|
invoke-virtual {v0}, Lcom/firemint/realracing/fmNfcData;->GetByteArray()[B
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {p0, v1, p1, v0}, Lcom/firemint/realracing/fmNfcManager;->WriteTag(Landroid/content/Context;Landroid/nfc/Tag;[B)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const-string p1, "fmNfcData was null. Skip writing the tag"
|
|
|
|
.line 217
|
|
invoke-static {p1}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
:cond_1
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public WriteTag(Landroid/content/Context;Landroid/nfc/Tag;[B)V
|
|
.locals 7
|
|
.annotation build Landroid/annotation/TargetApi;
|
|
value = 0x10
|
|
.end annotation
|
|
|
|
const-string v0, ")"
|
|
|
|
iget-object v1, p0, Lcom/firemint/realracing/fmNfcManager;->m_ndefMessage:Landroid/nfc/NdefMessage;
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
.line 228
|
|
invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-static {p1}, Landroid/nfc/NdefRecord;->createApplicationRecord(Ljava/lang/String;)Landroid/nfc/NdefRecord;
|
|
|
|
move-result-object p1
|
|
|
|
const-string v1, "com.ea.games.r3_na"
|
|
|
|
const-string v2, "r3.data"
|
|
|
|
.line 246
|
|
invoke-static {v1, v2, p3}, Landroid/nfc/NdefRecord;->createExternal(Ljava/lang/String;Ljava/lang/String;[B)Landroid/nfc/NdefRecord;
|
|
|
|
move-result-object p3
|
|
|
|
.line 248
|
|
new-instance v1, Landroid/nfc/NdefMessage;
|
|
|
|
const/4 v2, 0x2
|
|
|
|
new-array v2, v2, [Landroid/nfc/NdefRecord;
|
|
|
|
const/4 v3, 0x0
|
|
|
|
aput-object p3, v2, v3
|
|
|
|
const/4 p3, 0x1
|
|
|
|
aput-object p1, v2, p3
|
|
|
|
invoke-direct {v1, v2}, Landroid/nfc/NdefMessage;-><init>([Landroid/nfc/NdefRecord;)V
|
|
|
|
.line 258
|
|
:cond_0
|
|
invoke-static {p2}, Landroid/nfc/tech/Ndef;->get(Landroid/nfc/Tag;)Landroid/nfc/tech/Ndef;
|
|
|
|
move-result-object p1
|
|
|
|
const-string p3, "Tag has been lost :("
|
|
|
|
const-string v2, "IOException :("
|
|
|
|
const-string v3, "Format exception :("
|
|
|
|
if-eqz p1, :cond_3
|
|
|
|
.line 263
|
|
:try_start_0
|
|
invoke-virtual {p1}, Landroid/nfc/tech/Ndef;->connect()V
|
|
|
|
.line 265
|
|
invoke-virtual {p1}, Landroid/nfc/tech/Ndef;->isWritable()Z
|
|
|
|
move-result p2
|
|
|
|
if-eqz p2, :cond_2
|
|
|
|
.line 267
|
|
invoke-virtual {v1}, Landroid/nfc/NdefMessage;->toByteArray()[B
|
|
|
|
move-result-object p2
|
|
|
|
array-length p2, p2
|
|
|
|
.line 268
|
|
invoke-virtual {p1}, Landroid/nfc/tech/Ndef;->getMaxSize()I
|
|
|
|
move-result v4
|
|
|
|
.line 270
|
|
new-instance v5, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v6, "Message size is ("
|
|
|
|
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v5
|
|
|
|
invoke-static {v5}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
.line 271
|
|
new-instance v5, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v6, "Tag size is ("
|
|
|
|
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-static {v0}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
:try_end_0
|
|
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_3
|
|
|
|
if-lt v4, p2, :cond_1
|
|
|
|
.line 277
|
|
:try_start_1
|
|
invoke-virtual {p1, v1}, Landroid/nfc/tech/Ndef;->writeNdefMessage(Landroid/nfc/NdefMessage;)V
|
|
:try_end_1
|
|
.catch Landroid/nfc/TagLostException; {:try_start_1 .. :try_end_1} :catch_2
|
|
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_1
|
|
.catch Landroid/nfc/FormatException; {:try_start_1 .. :try_end_1} :catch_0
|
|
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_3
|
|
|
|
goto :goto_0
|
|
|
|
.line 289
|
|
:catch_0
|
|
:try_start_2
|
|
invoke-static {v3}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 285
|
|
:catch_1
|
|
invoke-static {v2}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 281
|
|
:catch_2
|
|
invoke-static {p3}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const-string p1, "The message is too big for the tag"
|
|
|
|
.line 294
|
|
invoke-static {p1}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
const-string p1, "Tag is read only"
|
|
|
|
.line 300
|
|
invoke-static {p1}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
:try_end_2
|
|
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_3
|
|
|
|
goto :goto_0
|
|
|
|
:catch_3
|
|
const-string p1, "Failed to connect to the tag"
|
|
|
|
.line 305
|
|
invoke-static {p1}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 310
|
|
:cond_3
|
|
invoke-static {p2}, Landroid/nfc/tech/NdefFormatable;->get(Landroid/nfc/Tag;)Landroid/nfc/tech/NdefFormatable;
|
|
|
|
move-result-object p1
|
|
|
|
if-eqz p1, :cond_4
|
|
|
|
.line 315
|
|
:try_start_3
|
|
invoke-virtual {p1}, Landroid/nfc/tech/NdefFormatable;->connect()V
|
|
|
|
.line 316
|
|
invoke-virtual {p1, v1}, Landroid/nfc/tech/NdefFormatable;->format(Landroid/nfc/NdefMessage;)V
|
|
:try_end_3
|
|
.catch Landroid/nfc/TagLostException; {:try_start_3 .. :try_end_3} :catch_6
|
|
.catch Ljava/io/IOException; {:try_start_3 .. :try_end_3} :catch_5
|
|
.catch Landroid/nfc/FormatException; {:try_start_3 .. :try_end_3} :catch_4
|
|
|
|
goto :goto_0
|
|
|
|
.line 328
|
|
:catch_4
|
|
invoke-static {v3}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 324
|
|
:catch_5
|
|
invoke-static {v2}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 320
|
|
:catch_6
|
|
invoke-static {p3}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
:cond_4
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public createNdefMessage(Landroid/nfc/NfcEvent;)Landroid/nfc/NdefMessage;
|
|
.locals 0
|
|
|
|
const-string p1, "createNdefMessage callback"
|
|
|
|
.line 106
|
|
invoke-static {p1}, Lcom/firemint/realracing/fmNfcManager;->Log(Ljava/lang/String;)V
|
|
|
|
.line 107
|
|
invoke-virtual {p0}, Lcom/firemint/realracing/fmNfcManager;->GetNfcDataToTransmitJNI()[B
|
|
|
|
move-result-object p1
|
|
|
|
.line 108
|
|
invoke-virtual {p0, p1}, Lcom/firemint/realracing/fmNfcManager;->CreateNdefMessage([B)Landroid/nfc/NdefMessage;
|
|
|
|
move-result-object p1
|
|
|
|
iput-object p1, p0, Lcom/firemint/realracing/fmNfcManager;->m_ndefMessage:Landroid/nfc/NdefMessage;
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public onPause()V
|
|
.locals 0
|
|
|
|
.line 115
|
|
invoke-virtual {p0}, Lcom/firemint/realracing/fmNfcManager;->DisableForegroundDispatch()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public onResume()V
|
|
.locals 0
|
|
|
|
.line 121
|
|
invoke-virtual {p0}, Lcom/firemint/realracing/fmNfcManager;->EnableForegroundDispatch()V
|
|
|
|
return-void
|
|
.end method
|