Remove broken offline mode classes causing VerifyError
Removed custom offline classes with malformed smali: - LocalSaveManager (incorrect register usage in methods) - OfflineResponseMock, OfflineEventsManager, OfflineCurrencyManager - MainActivity\ Restored original MainActivity.smali from backup. The LocalSaveManager had bytecode verification errors: - getSaveFilePath: missing argument register for getExternalFilesDir - initSaveFile: wrong register types - setCurrency: type mismatch Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -1,543 +0,0 @@
|
|||||||
.class public Lcom/firemint/realracing/LocalSaveManager;
|
|
||||||
.super Ljava/lang/Object;
|
|
||||||
.source "LocalSaveManager.java"
|
|
||||||
|
|
||||||
|
|
||||||
# static fields
|
|
||||||
.field private static final TAG:Ljava/lang/String; = "RR3_LocalSaveManager"
|
|
||||||
|
|
||||||
.field private static final SAVE_FILE_NAME:Ljava/lang/String; = "offline_save.json"
|
|
||||||
|
|
||||||
.field private static final SAVE_VERSION:Ljava/lang/String; = "1.0"
|
|
||||||
|
|
||||||
.field private static saveData:Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
|
|
||||||
# direct methods
|
|
||||||
.method static constructor <clinit>()V
|
|
||||||
.locals 1
|
|
||||||
|
|
||||||
# Initialize saveData to null
|
|
||||||
const/4 v0, 0x0
|
|
||||||
|
|
||||||
sput-object v0, Lcom/firemint/realracing/LocalSaveManager;->saveData:Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public constructor <init>()V
|
|
||||||
.locals 0
|
|
||||||
|
|
||||||
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static getSaveFilePath(Landroid/content/Context;)Ljava/io/File;
|
|
||||||
.locals 3
|
|
||||||
|
|
||||||
# Get external storage directory: /sdcard/Android/data/com.ea.games.r3_row/files/
|
|
||||||
invoke-virtual {p0}, Landroid/content/Context;->getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;
|
|
||||||
|
|
||||||
move-result-object p0
|
|
||||||
|
|
||||||
# Create File object for offline_save.json
|
|
||||||
new-instance v0, Ljava/io/File;
|
|
||||||
|
|
||||||
const-string v1, "offline_save.json"
|
|
||||||
|
|
||||||
invoke-direct {v0, p0, v1}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
|
|
||||||
|
|
||||||
return-object v0
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static initSaveFile(Landroid/content/Context;)V
|
|
||||||
.locals 5
|
|
||||||
|
|
||||||
const-string v0, "RR3_LocalSaveManager"
|
|
||||||
|
|
||||||
const-string v1, "Initializing save file"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
# Get save file path
|
|
||||||
invoke-static {p0}, Lcom/firemint/realracing/LocalSaveManager;->getSaveFilePath(Landroid/content/Context;)Ljava/io/File;
|
|
||||||
|
|
||||||
move-result-object v1
|
|
||||||
|
|
||||||
# Check if file already exists
|
|
||||||
invoke-virtual {v1}, Ljava/io/File;->exists()Z
|
|
||||||
|
|
||||||
move-result v2
|
|
||||||
|
|
||||||
if-eqz v2, :cond_0
|
|
||||||
|
|
||||||
const-string p0, "Save file already exists. Loading existing data."
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
# Load existing save
|
|
||||||
invoke-static {p0}, Lcom/firemint/realracing/LocalSaveManager;->loadSave(Landroid/content/Context;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# Create new save structure
|
|
||||||
new-instance v1, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v1}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
# Set version
|
|
||||||
const-string v2, "version"
|
|
||||||
|
|
||||||
const-string v3, "1.0"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Set lastSaved timestamp
|
|
||||||
const-string v2, "lastSaved"
|
|
||||||
|
|
||||||
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
|
|
||||||
|
|
||||||
move-result-wide v3
|
|
||||||
|
|
||||||
invoke-virtual {v1, v2, v3, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Create player object
|
|
||||||
new-instance v2, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v2}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v3, "name"
|
|
||||||
|
|
||||||
const-string v4, "Player"
|
|
||||||
|
|
||||||
invoke-virtual {v2, v3, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v3, "level"
|
|
||||||
|
|
||||||
const/4 v4, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {v2, v3, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v3, "xp"
|
|
||||||
|
|
||||||
const/4 v4, 0x0
|
|
||||||
|
|
||||||
invoke-virtual {v2, v3, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v3, "player"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v3, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Create currency object
|
|
||||||
new-instance v2, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v2}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v3, "cash"
|
|
||||||
|
|
||||||
const v4, 0xc350 # 50000
|
|
||||||
|
|
||||||
invoke-virtual {v2, v3, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v3, "gold"
|
|
||||||
|
|
||||||
const/16 v4, 0xc8 # 200
|
|
||||||
|
|
||||||
invoke-virtual {v2, v3, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v3, "rDollars"
|
|
||||||
|
|
||||||
const/4 v4, 0x0
|
|
||||||
|
|
||||||
invoke-virtual {v2, v3, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v3, "currency"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v3, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Create dailyReward object
|
|
||||||
new-instance v2, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v2}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v3, "lastClaimed"
|
|
||||||
|
|
||||||
const-wide/16 v4, 0x0
|
|
||||||
|
|
||||||
invoke-virtual {v2, v3, v4, v5}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v3, "streak"
|
|
||||||
|
|
||||||
const/4 v4, 0x0
|
|
||||||
|
|
||||||
invoke-virtual {v2, v3, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v3, "dailyReward"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v3, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Create empty cars array
|
|
||||||
new-instance v2, Lorg/json/JSONArray;
|
|
||||||
|
|
||||||
invoke-direct {v2}, Lorg/json/JSONArray;-><init>()V
|
|
||||||
|
|
||||||
const-string v3, "cars"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v3, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Create empty progress object
|
|
||||||
new-instance v2, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v2}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v3, "progress"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v3, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Store in memory
|
|
||||||
sput-object v1, Lcom/firemint/realracing/LocalSaveManager;->saveData:Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Save to file
|
|
||||||
invoke-static {p0}, Lcom/firemint/realracing/LocalSaveManager;->saveSave(Landroid/content/Context;)V
|
|
||||||
|
|
||||||
const-string p0, "Save file initialized successfully"
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p0
|
|
||||||
|
|
||||||
const-string v1, "Error initializing save file"
|
|
||||||
|
|
||||||
invoke-static {v0, v1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static loadSave(Landroid/content/Context;)Lorg/json/JSONObject;
|
|
||||||
.locals 6
|
|
||||||
|
|
||||||
const-string v0, "RR3_LocalSaveManager"
|
|
||||||
|
|
||||||
const-string v1, "Loading save file"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
# Get save file path
|
|
||||||
invoke-static {p0}, Lcom/firemint/realracing/LocalSaveManager;->getSaveFilePath(Landroid/content/Context;)Ljava/io/File;
|
|
||||||
|
|
||||||
move-result-object p0
|
|
||||||
|
|
||||||
# Check if file exists
|
|
||||||
invoke-virtual {p0}, Ljava/io/File;->exists()Z
|
|
||||||
|
|
||||||
move-result v1
|
|
||||||
|
|
||||||
if-nez v1, :cond_0
|
|
||||||
|
|
||||||
const-string p0, "Save file does not exist"
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
# Return null if file doesn't exist
|
|
||||||
const/4 p0, 0x0
|
|
||||||
|
|
||||||
return-object p0
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# Read file content
|
|
||||||
new-instance v1, Ljava/io/FileInputStream;
|
|
||||||
|
|
||||||
invoke-direct {v1, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
|
|
||||||
|
|
||||||
# Get file size
|
|
||||||
invoke-virtual {p0}, Ljava/io/File;->length()J
|
|
||||||
|
|
||||||
move-result-wide v2
|
|
||||||
|
|
||||||
long-to-int p0, v2
|
|
||||||
|
|
||||||
# Create byte array
|
|
||||||
new-array v2, p0, [B
|
|
||||||
|
|
||||||
# Read bytes
|
|
||||||
invoke-virtual {v1, v2}, Ljava/io/FileInputStream;->read([B)I
|
|
||||||
|
|
||||||
# Close stream
|
|
||||||
invoke-virtual {v1}, Ljava/io/FileInputStream;->close()V
|
|
||||||
|
|
||||||
# Convert bytes to string
|
|
||||||
new-instance v1, Ljava/lang/String;
|
|
||||||
|
|
||||||
const-string v3, "UTF-8"
|
|
||||||
|
|
||||||
invoke-direct {v1, v2, v3}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
|
|
||||||
|
|
||||||
# Parse JSON
|
|
||||||
new-instance v2, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v2, v1}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
|
|
||||||
|
|
||||||
# Store in memory
|
|
||||||
sput-object v2, Lcom/firemint/realracing/LocalSaveManager;->saveData:Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "Save file loaded successfully"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
# Return the loaded data
|
|
||||||
sget-object p0, Lcom/firemint/realracing/LocalSaveManager;->saveData:Lorg/json/JSONObject;
|
|
||||||
:try_end_0
|
|
||||||
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
return-object p0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p0
|
|
||||||
|
|
||||||
const-string v1, "Error loading save file"
|
|
||||||
|
|
||||||
invoke-static {v0, v1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
# Return null on error
|
|
||||||
const/4 p0, 0x0
|
|
||||||
|
|
||||||
return-object p0
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static saveSave(Landroid/content/Context;)V
|
|
||||||
.locals 5
|
|
||||||
|
|
||||||
const-string v0, "RR3_LocalSaveManager"
|
|
||||||
|
|
||||||
const-string v1, "Saving save file"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
# Get current save data
|
|
||||||
sget-object v1, Lcom/firemint/realracing/LocalSaveManager;->saveData:Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
if-nez v1, :cond_0
|
|
||||||
|
|
||||||
const-string p0, "No save data to save"
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# Update lastSaved timestamp
|
|
||||||
const-string v2, "lastSaved"
|
|
||||||
|
|
||||||
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
|
|
||||||
|
|
||||||
move-result-wide v3
|
|
||||||
|
|
||||||
invoke-virtual {v1, v2, v3, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Get save file path
|
|
||||||
invoke-static {p0}, Lcom/firemint/realracing/LocalSaveManager;->getSaveFilePath(Landroid/content/Context;)Ljava/io/File;
|
|
||||||
|
|
||||||
move-result-object p0
|
|
||||||
|
|
||||||
# Convert JSON to string
|
|
||||||
sget-object v1, Lcom/firemint/realracing/LocalSaveManager;->saveData:Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const/4 v2, 0x4
|
|
||||||
|
|
||||||
invoke-virtual {v1, v2}, Lorg/json/JSONObject;->toString(I)Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object v1
|
|
||||||
|
|
||||||
# Write to file
|
|
||||||
new-instance v2, Ljava/io/FileOutputStream;
|
|
||||||
|
|
||||||
invoke-direct {v2, p0}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
|
|
||||||
|
|
||||||
const-string p0, "UTF-8"
|
|
||||||
|
|
||||||
invoke-virtual {v1, p0}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B
|
|
||||||
|
|
||||||
move-result-object p0
|
|
||||||
|
|
||||||
invoke-virtual {v2, p0}, Ljava/io/FileOutputStream;->write([B)V
|
|
||||||
|
|
||||||
# Close stream
|
|
||||||
invoke-virtual {v2}, Ljava/io/FileOutputStream;->close()V
|
|
||||||
|
|
||||||
const-string p0, "Save file saved successfully"
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
:try_end_0
|
|
||||||
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p0
|
|
||||||
|
|
||||||
const-string v1, "Error saving save file"
|
|
||||||
|
|
||||||
invoke-static {v0, v1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static getSaveData()Lorg/json/JSONObject;
|
|
||||||
.locals 1
|
|
||||||
|
|
||||||
# Return the in-memory save data
|
|
||||||
sget-object v0, Lcom/firemint/realracing/LocalSaveManager;->saveData:Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
return-object v0
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static updateSaveData(Ljava/lang/String;Ljava/lang/Object;Landroid/content/Context;)V
|
|
||||||
.locals 2
|
|
||||||
|
|
||||||
const-string v0, "RR3_LocalSaveManager"
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
# Get current save data
|
|
||||||
sget-object v1, Lcom/firemint/realracing/LocalSaveManager;->saveData:Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
if-nez v1, :cond_0
|
|
||||||
|
|
||||||
const-string p0, "Save data not initialized"
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# Update the field
|
|
||||||
invoke-virtual {v1, p0, p1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Save to disk
|
|
||||||
invoke-static {p2}, Lcom/firemint/realracing/LocalSaveManager;->saveSave(Landroid/content/Context;)V
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p0
|
|
||||||
|
|
||||||
const-string p1, "Error updating save data"
|
|
||||||
|
|
||||||
invoke-static {v0, p1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static getCurrency(Landroid/content/Context;Ljava/lang/String;)I
|
|
||||||
.locals 3
|
|
||||||
|
|
||||||
const-string v0, "RR3_LocalSaveManager"
|
|
||||||
|
|
||||||
const/4 v1, 0x0
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
# Load save if not in memory
|
|
||||||
sget-object v2, Lcom/firemint/realracing/LocalSaveManager;->saveData:Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
if-nez v2, :cond_0
|
|
||||||
|
|
||||||
invoke-static {p0}, Lcom/firemint/realracing/LocalSaveManager;->loadSave(Landroid/content/Context;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
move-result-object v2
|
|
||||||
|
|
||||||
if-nez v2, :cond_0
|
|
||||||
|
|
||||||
return v1
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# Get currency object
|
|
||||||
sget-object p0, Lcom/firemint/realracing/LocalSaveManager;->saveData:Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v2, "currency"
|
|
||||||
|
|
||||||
invoke-virtual {p0, v2}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
move-result-object p0
|
|
||||||
|
|
||||||
# Get specific currency value
|
|
||||||
invoke-virtual {p0, p1}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
|
|
||||||
|
|
||||||
move-result p0
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
return p0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p0
|
|
||||||
|
|
||||||
const-string p1, "Error getting currency"
|
|
||||||
|
|
||||||
invoke-static {v0, p1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
return v1
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static setCurrency(Landroid/content/Context;Ljava/lang/String;I)V
|
|
||||||
.locals 2
|
|
||||||
|
|
||||||
const-string v0, "RR3_LocalSaveManager"
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
# Load save if not in memory
|
|
||||||
sget-object v1, Lcom/firemint/realracing/LocalSaveManager;->saveData:Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
if-nez v1, :cond_0
|
|
||||||
|
|
||||||
invoke-static {p0}, Lcom/firemint/realracing/LocalSaveManager;->loadSave(Landroid/content/Context;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
move-result-object v1
|
|
||||||
|
|
||||||
if-nez v1, :cond_0
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# Get currency object
|
|
||||||
sget-object v1, Lcom/firemint/realracing/LocalSaveManager;->saveData:Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v0, "currency"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v0}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
move-result-object v0
|
|
||||||
|
|
||||||
# Set currency value
|
|
||||||
invoke-virtual {v0, p1, p2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Save to disk
|
|
||||||
invoke-static {p0}, Lcom/firemint/realracing/LocalSaveManager;->saveSave(Landroid/content/Context;)V
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p0
|
|
||||||
|
|
||||||
const-string p1, "Error setting currency"
|
|
||||||
|
|
||||||
invoke-static {v0, p1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
@@ -1,108 +0,0 @@
|
|||||||
.class Lcom/firemint/realracing/MainActivity$OfflineInitRunnable;
|
|
||||||
.super Ljava/lang/Object;
|
|
||||||
.source "SourceFile"
|
|
||||||
|
|
||||||
# interfaces
|
|
||||||
.implements Ljava/lang/Runnable;
|
|
||||||
|
|
||||||
|
|
||||||
# annotations
|
|
||||||
.annotation system Ldalvik/annotation/EnclosingClass;
|
|
||||||
value = Lcom/firemint/realracing/MainActivity;
|
|
||||||
.end annotation
|
|
||||||
|
|
||||||
.annotation system Ldalvik/annotation/InnerClass;
|
|
||||||
accessFlags = 0x2
|
|
||||||
name = "OfflineInitRunnable"
|
|
||||||
.end annotation
|
|
||||||
|
|
||||||
|
|
||||||
# instance fields
|
|
||||||
.field final synthetic this$0:Lcom/firemint/realracing/MainActivity;
|
|
||||||
|
|
||||||
|
|
||||||
# direct methods
|
|
||||||
.method constructor <init>(Lcom/firemint/realracing/MainActivity;)V
|
|
||||||
.locals 0
|
|
||||||
|
|
||||||
.line 1
|
|
||||||
iput-object p1, p0, Lcom/firemint/realracing/MainActivity$OfflineInitRunnable;->this$0:Lcom/firemint/realracing/MainActivity;
|
|
||||||
|
|
||||||
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
|
|
||||||
# virtual methods
|
|
||||||
.method public run()V
|
|
||||||
.locals 3
|
|
||||||
|
|
||||||
.line 1
|
|
||||||
const-string v0, "RealRacing3"
|
|
||||||
|
|
||||||
const-string v1, "OfflineInitRunnable: Initializing offline managers (delayed)"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
.line 2
|
|
||||||
:try_start_0
|
|
||||||
iget-object v1, p0, Lcom/firemint/realracing/MainActivity$OfflineInitRunnable;->this$0:Lcom/firemint/realracing/MainActivity;
|
|
||||||
|
|
||||||
invoke-static {v1}, Lcom/firemint/realracing/LocalSaveManager;->initSaveFile(Landroid/content/Context;)V
|
|
||||||
|
|
||||||
.line 3
|
|
||||||
const-string v1, " ✓ LocalSaveManager initialized"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
.line 4
|
|
||||||
iget-object v1, p0, Lcom/firemint/realracing/MainActivity$OfflineInitRunnable;->this$0:Lcom/firemint/realracing/MainActivity;
|
|
||||||
|
|
||||||
invoke-static {v1}, Lcom/firemint/realracing/OfflineModeManager;->init(Landroid/content/Context;)V
|
|
||||||
|
|
||||||
.line 5
|
|
||||||
const-string v1, " ✓ OfflineModeManager initialized"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
.line 6
|
|
||||||
iget-object v1, p0, Lcom/firemint/realracing/MainActivity$OfflineInitRunnable;->this$0:Lcom/firemint/realracing/MainActivity;
|
|
||||||
|
|
||||||
invoke-static {v1}, Lcom/firemint/realracing/OfflineCurrencyManager;->init(Landroid/content/Context;)V
|
|
||||||
|
|
||||||
.line 7
|
|
||||||
const-string v1, " ✓ OfflineCurrencyManager initialized"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
.line 8
|
|
||||||
iget-object v1, p0, Lcom/firemint/realracing/MainActivity$OfflineInitRunnable;->this$0:Lcom/firemint/realracing/MainActivity;
|
|
||||||
|
|
||||||
invoke-static {v1}, Lcom/firemint/realracing/OfflineEventsManager;->init(Landroid/content/Context;)V
|
|
||||||
|
|
||||||
.line 9
|
|
||||||
const-string v1, " ✓ OfflineEventsManager initialized"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
.line 10
|
|
||||||
const-string v1, "✅ All offline managers initialized successfully!"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
:try_end_0
|
|
||||||
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception v1
|
|
||||||
|
|
||||||
.line 11
|
|
||||||
const-string v2, "❌ Error initializing offline managers:"
|
|
||||||
|
|
||||||
invoke-static {v0, v2, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
@@ -1,382 +0,0 @@
|
|||||||
.class public Lcom/firemint/realracing/OfflineCurrencyManager;
|
|
||||||
.super Ljava/lang/Object;
|
|
||||||
.source "OfflineCurrencyManager.java"
|
|
||||||
|
|
||||||
|
|
||||||
# static fields
|
|
||||||
.field private static final TAG:Ljava/lang/String; = "RR3_OfflineCurrency"
|
|
||||||
|
|
||||||
.field private static final UNLIMITED_AMOUNT:I = 0x5f5e100 # 100,000,000
|
|
||||||
|
|
||||||
.field private static unlimitedCurrencyEnabled:Z = true
|
|
||||||
|
|
||||||
|
|
||||||
# direct methods
|
|
||||||
.method static constructor <clinit>()V
|
|
||||||
.locals 1
|
|
||||||
|
|
||||||
# Enable unlimited currency by default in offline mode
|
|
||||||
const/4 v0, 0x1
|
|
||||||
|
|
||||||
sput-boolean v0, Lcom/firemint/realracing/OfflineCurrencyManager;->unlimitedCurrencyEnabled:Z
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public constructor <init>()V
|
|
||||||
.locals 0
|
|
||||||
|
|
||||||
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static init(Landroid/content/Context;)V
|
|
||||||
.locals 2
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineCurrency"
|
|
||||||
|
|
||||||
const-string v1, "Initializing OfflineCurrencyManager"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
# Set high initial currency amounts in save file
|
|
||||||
invoke-static {p0}, Lcom/firemint/realracing/OfflineCurrencyManager;->ensureMinimumCurrency(Landroid/content/Context;)V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static isUnlimitedEnabled()Z
|
|
||||||
.locals 1
|
|
||||||
|
|
||||||
sget-boolean v0, Lcom/firemint/realracing/OfflineCurrencyManager;->unlimitedCurrencyEnabled:Z
|
|
||||||
|
|
||||||
return v0
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static setUnlimited(Z)V
|
|
||||||
.locals 0
|
|
||||||
|
|
||||||
sput-boolean p0, Lcom/firemint/realracing/OfflineCurrencyManager;->unlimitedCurrencyEnabled:Z
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static ensureMinimumCurrency(Landroid/content/Context;)V
|
|
||||||
.locals 4
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineCurrency"
|
|
||||||
|
|
||||||
# Check if unlimited is enabled
|
|
||||||
sget-boolean v1, Lcom/firemint/realracing/OfflineCurrencyManager;->unlimitedCurrencyEnabled:Z
|
|
||||||
|
|
||||||
if-nez v1, :cond_0
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# Set high amounts for offline play
|
|
||||||
const v1, 0x5f5e100 # 100,000,000
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
# Set M$ (cash)
|
|
||||||
const-string v2, "cash"
|
|
||||||
|
|
||||||
invoke-static {p0, v2, v1}, Lcom/firemint/realracing/LocalSaveManager;->setCurrency(Landroid/content/Context;Ljava/lang/String;I)V
|
|
||||||
|
|
||||||
# Set Gold
|
|
||||||
const v1, 0x989680 # 10,000,000
|
|
||||||
|
|
||||||
const-string v2, "gold"
|
|
||||||
|
|
||||||
invoke-static {p0, v2, v1}, Lcom/firemint/realracing/LocalSaveManager;->setCurrency(Landroid/content/Context;Ljava/lang/String;I)V
|
|
||||||
|
|
||||||
# Set R$ (R-Dollars - 0 for now)
|
|
||||||
const/4 v1, 0x0
|
|
||||||
|
|
||||||
const-string v2, "rDollars"
|
|
||||||
|
|
||||||
invoke-static {p0, v2, v1}, Lcom/firemint/realracing/LocalSaveManager;->setCurrency(Landroid/content/Context;Ljava/lang/String;I)V
|
|
||||||
|
|
||||||
const-string p0, "Currency set: 100M M$, 10M Gold"
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
:try_end_0
|
|
||||||
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p0
|
|
||||||
|
|
||||||
const-string v1, "Error setting currency"
|
|
||||||
|
|
||||||
invoke-static {v0, v1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static getCashForOffline(Landroid/content/Context;)I
|
|
||||||
.locals 2
|
|
||||||
|
|
||||||
# Check if offline mode is enabled
|
|
||||||
invoke-static {}, Lcom/firemint/realracing/OfflineModeManager;->isOfflineMode()Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-eqz v0, :cond_online
|
|
||||||
|
|
||||||
# Offline mode - check if unlimited
|
|
||||||
sget-boolean v0, Lcom/firemint/realracing/OfflineCurrencyManager;->unlimitedCurrencyEnabled:Z
|
|
||||||
|
|
||||||
if-eqz v0, :cond_limited
|
|
||||||
|
|
||||||
# Return unlimited amount
|
|
||||||
const v0, 0x5f5e100 # 100,000,000
|
|
||||||
|
|
||||||
return v0
|
|
||||||
|
|
||||||
:cond_limited
|
|
||||||
# Return from save file
|
|
||||||
const-string v0, "cash"
|
|
||||||
|
|
||||||
invoke-static {p0, v0}, Lcom/firemint/realracing/LocalSaveManager;->getCurrency(Landroid/content/Context;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
return v0
|
|
||||||
|
|
||||||
:cond_online
|
|
||||||
# Online mode - return from save (or game will handle)
|
|
||||||
const-string v0, "cash"
|
|
||||||
|
|
||||||
invoke-static {p0, v0}, Lcom/firemint/realracing/LocalSaveManager;->getCurrency(Landroid/content/Context;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
return v0
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static getGoldForOffline(Landroid/content/Context;)I
|
|
||||||
.locals 2
|
|
||||||
|
|
||||||
# Check if offline mode is enabled
|
|
||||||
invoke-static {}, Lcom/firemint/realracing/OfflineModeManager;->isOfflineMode()Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-eqz v0, :cond_online
|
|
||||||
|
|
||||||
# Offline mode - check if unlimited
|
|
||||||
sget-boolean v0, Lcom/firemint/realracing/OfflineCurrencyManager;->unlimitedCurrencyEnabled:Z
|
|
||||||
|
|
||||||
if-eqz v0, :cond_limited
|
|
||||||
|
|
||||||
# Return unlimited amount
|
|
||||||
const v0, 0x989680 # 10,000,000
|
|
||||||
|
|
||||||
return v0
|
|
||||||
|
|
||||||
:cond_limited
|
|
||||||
# Return from save file
|
|
||||||
const-string v0, "gold"
|
|
||||||
|
|
||||||
invoke-static {p0, v0}, Lcom/firemint/realracing/LocalSaveManager;->getCurrency(Landroid/content/Context;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
return v0
|
|
||||||
|
|
||||||
:cond_online
|
|
||||||
# Online mode - return from save (or game will handle)
|
|
||||||
const-string v0, "gold"
|
|
||||||
|
|
||||||
invoke-static {p0, v0}, Lcom/firemint/realracing/LocalSaveManager;->getCurrency(Landroid/content/Context;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
return v0
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static addCash(Landroid/content/Context;I)V
|
|
||||||
.locals 3
|
|
||||||
|
|
||||||
# Only track in offline mode
|
|
||||||
invoke-static {}, Lcom/firemint/realracing/OfflineModeManager;->isOfflineMode()Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-nez v0, :cond_0
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# If unlimited, don't bother tracking
|
|
||||||
sget-boolean v0, Lcom/firemint/realracing/OfflineCurrencyManager;->unlimitedCurrencyEnabled:Z
|
|
||||||
|
|
||||||
if-eqz v0, :cond_1
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_1
|
|
||||||
# Get current amount
|
|
||||||
const-string v0, "cash"
|
|
||||||
|
|
||||||
invoke-static {p0, v0}, Lcom/firemint/realracing/LocalSaveManager;->getCurrency(Landroid/content/Context;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
move-result v1
|
|
||||||
|
|
||||||
# Add new amount
|
|
||||||
add-int/2addr v1, p1
|
|
||||||
|
|
||||||
# Save
|
|
||||||
invoke-static {p0, v0, v1}, Lcom/firemint/realracing/LocalSaveManager;->setCurrency(Landroid/content/Context;Ljava/lang/String;I)V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static addGold(Landroid/content/Context;I)V
|
|
||||||
.locals 3
|
|
||||||
|
|
||||||
# Only track in offline mode
|
|
||||||
invoke-static {}, Lcom/firemint/realracing/OfflineModeManager;->isOfflineMode()Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-nez v0, :cond_0
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# If unlimited, don't bother tracking
|
|
||||||
sget-boolean v0, Lcom/firemint/realracing/OfflineCurrencyManager;->unlimitedCurrencyEnabled:Z
|
|
||||||
|
|
||||||
if-eqz v0, :cond_1
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_1
|
|
||||||
# Get current amount
|
|
||||||
const-string v0, "gold"
|
|
||||||
|
|
||||||
invoke-static {p0, v0}, Lcom/firemint/realracing/LocalSaveManager;->getCurrency(Landroid/content/Context;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
move-result v1
|
|
||||||
|
|
||||||
# Add new amount
|
|
||||||
add-int/2addr v1, p1
|
|
||||||
|
|
||||||
# Save
|
|
||||||
invoke-static {p0, v0, v1}, Lcom/firemint/realracing/LocalSaveManager;->setCurrency(Landroid/content/Context;Ljava/lang/String;I)V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static spendCash(Landroid/content/Context;I)Z
|
|
||||||
.locals 3
|
|
||||||
|
|
||||||
# Only track in offline mode
|
|
||||||
invoke-static {}, Lcom/firemint/realracing/OfflineModeManager;->isOfflineMode()Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-nez v0, :cond_0
|
|
||||||
|
|
||||||
# Online mode - let game handle
|
|
||||||
const/4 p0, 0x1
|
|
||||||
|
|
||||||
return p0
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# If unlimited, always succeed
|
|
||||||
sget-boolean v0, Lcom/firemint/realracing/OfflineCurrencyManager;->unlimitedCurrencyEnabled:Z
|
|
||||||
|
|
||||||
if-eqz v0, :cond_1
|
|
||||||
|
|
||||||
const/4 p0, 0x1
|
|
||||||
|
|
||||||
return p0
|
|
||||||
|
|
||||||
:cond_1
|
|
||||||
# Get current amount
|
|
||||||
const-string v0, "cash"
|
|
||||||
|
|
||||||
invoke-static {p0, v0}, Lcom/firemint/realracing/LocalSaveManager;->getCurrency(Landroid/content/Context;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
move-result v1
|
|
||||||
|
|
||||||
# Check if enough
|
|
||||||
if-lt v1, p1, :cond_insufficient
|
|
||||||
|
|
||||||
# Subtract
|
|
||||||
sub-int/2addr v1, p1
|
|
||||||
|
|
||||||
# Save
|
|
||||||
invoke-static {p0, v0, v1}, Lcom/firemint/realracing/LocalSaveManager;->setCurrency(Landroid/content/Context;Ljava/lang/String;I)V
|
|
||||||
|
|
||||||
# Success
|
|
||||||
const/4 p0, 0x1
|
|
||||||
|
|
||||||
return p0
|
|
||||||
|
|
||||||
:cond_insufficient
|
|
||||||
# Not enough currency
|
|
||||||
const/4 p0, 0x0
|
|
||||||
|
|
||||||
return p0
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static spendGold(Landroid/content/Context;I)Z
|
|
||||||
.locals 3
|
|
||||||
|
|
||||||
# Only track in offline mode
|
|
||||||
invoke-static {}, Lcom/firemint/realracing/OfflineModeManager;->isOfflineMode()Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-nez v0, :cond_0
|
|
||||||
|
|
||||||
# Online mode - let game handle
|
|
||||||
const/4 p0, 0x1
|
|
||||||
|
|
||||||
return p0
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# If unlimited, always succeed
|
|
||||||
sget-boolean v0, Lcom/firemint/realracing/OfflineCurrencyManager;->unlimitedCurrencyEnabled:Z
|
|
||||||
|
|
||||||
if-eqz v0, :cond_1
|
|
||||||
|
|
||||||
const/4 p0, 0x1
|
|
||||||
|
|
||||||
return p0
|
|
||||||
|
|
||||||
:cond_1
|
|
||||||
# Get current amount
|
|
||||||
const-string v0, "gold"
|
|
||||||
|
|
||||||
invoke-static {p0, v0}, Lcom/firemint/realracing/LocalSaveManager;->getCurrency(Landroid/content/Context;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
move-result v1
|
|
||||||
|
|
||||||
# Check if enough
|
|
||||||
if-lt v1, p1, :cond_insufficient
|
|
||||||
|
|
||||||
# Subtract
|
|
||||||
sub-int/2addr v1, p1
|
|
||||||
|
|
||||||
# Save
|
|
||||||
invoke-static {p0, v0, v1}, Lcom/firemint/realracing/LocalSaveManager;->setCurrency(Landroid/content/Context;Ljava/lang/String;I)V
|
|
||||||
|
|
||||||
# Success
|
|
||||||
const/4 p0, 0x1
|
|
||||||
|
|
||||||
return p0
|
|
||||||
|
|
||||||
:cond_insufficient
|
|
||||||
# Not enough currency
|
|
||||||
const/4 p0, 0x0
|
|
||||||
|
|
||||||
return p0
|
|
||||||
.end method
|
|
||||||
@@ -1,592 +0,0 @@
|
|||||||
.class public Lcom/firemint/realracing/OfflineEventsManager;
|
|
||||||
.super Ljava/lang/Object;
|
|
||||||
.source "OfflineEventsManager.java"
|
|
||||||
|
|
||||||
|
|
||||||
# static fields
|
|
||||||
.field private static final TAG:Ljava/lang/String; = "RR3_OfflineEvents"
|
|
||||||
|
|
||||||
.field private static eventsEnabled:Z = true
|
|
||||||
|
|
||||||
|
|
||||||
# direct methods
|
|
||||||
.method static constructor <clinit>()V
|
|
||||||
.locals 1
|
|
||||||
|
|
||||||
# Enable all events by default
|
|
||||||
const/4 v0, 0x1
|
|
||||||
|
|
||||||
sput-boolean v0, Lcom/firemint/realracing/OfflineEventsManager;->eventsEnabled:Z
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public constructor <init>()V
|
|
||||||
.locals 0
|
|
||||||
|
|
||||||
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static init(Landroid/content/Context;)V
|
|
||||||
.locals 2
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineEvents"
|
|
||||||
|
|
||||||
const-string v1, "Initializing Offline Events Manager"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
# Initialize event data in save file
|
|
||||||
invoke-static {p0}, Lcom/firemint/realracing/OfflineEventsManager;->initializeEventData(Landroid/content/Context;)V
|
|
||||||
|
|
||||||
const-string p0, "All special events enabled for offline play"
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static initializeEventData(Landroid/content/Context;)V
|
|
||||||
.locals 5
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineEvents"
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
# Get or create events object in save file
|
|
||||||
invoke-static {}, Lcom/firemint/realracing/LocalSaveManager;->getSaveData()Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
move-result-object v1
|
|
||||||
|
|
||||||
if-nez v1, :cond_0
|
|
||||||
|
|
||||||
const-string p0, "Save data not initialized"
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# Check if events object exists
|
|
||||||
const-string v2, "events"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v2}, Lorg/json/JSONObject;->has(Ljava/lang/String;)Z
|
|
||||||
|
|
||||||
move-result v3
|
|
||||||
|
|
||||||
if-nez v3, :cond_1
|
|
||||||
|
|
||||||
# Create events object
|
|
||||||
new-instance v3, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v3}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
# Add event types
|
|
||||||
const-string v4, "timeTrial"
|
|
||||||
|
|
||||||
invoke-static {}, Lcom/firemint/realracing/OfflineEventsManager;->createDefaultTimeTrialData()Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
move-result-object v4
|
|
||||||
|
|
||||||
const-string v2, "timeTrial"
|
|
||||||
|
|
||||||
invoke-virtual {v3, v2, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v4, "dailyBattle"
|
|
||||||
|
|
||||||
invoke-static {}, Lcom/firemint/realracing/OfflineEventsManager;->createDefaultDailyBattleData()Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
move-result-object v4
|
|
||||||
|
|
||||||
const-string v2, "dailyBattle"
|
|
||||||
|
|
||||||
invoke-virtual {v3, v2, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v4, "championship"
|
|
||||||
|
|
||||||
invoke-static {}, Lcom/firemint/realracing/OfflineEventsManager;->createDefaultChampionshipData()Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
move-result-object v4
|
|
||||||
|
|
||||||
const-string v2, "championship"
|
|
||||||
|
|
||||||
invoke-virtual {v3, v2, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v4, "specialEvent"
|
|
||||||
|
|
||||||
invoke-static {}, Lcom/firemint/realracing/OfflineEventsManager;->createDefaultSpecialEventData()Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
move-result-object v4
|
|
||||||
|
|
||||||
const-string v2, "specialEvent"
|
|
||||||
|
|
||||||
invoke-virtual {v3, v2, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Save to save data
|
|
||||||
const-string v2, "events"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Save to disk
|
|
||||||
invoke-static {p0}, Lcom/firemint/realracing/LocalSaveManager;->saveSave(Landroid/content/Context;)V
|
|
||||||
|
|
||||||
const-string p0, "Event data initialized"
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
:cond_1
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p0
|
|
||||||
|
|
||||||
const-string v1, "Error initializing event data"
|
|
||||||
|
|
||||||
invoke-static {v0, v1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static createDefaultTimeTrialData()Lorg/json/JSONObject;
|
|
||||||
.locals 4
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
new-instance v0, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v1, "available"
|
|
||||||
|
|
||||||
const/4 v2, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "name"
|
|
||||||
|
|
||||||
const-string v2, "Offline Time Trial"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "track"
|
|
||||||
|
|
||||||
const-string v2, "brands_hatch"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "carClass"
|
|
||||||
|
|
||||||
const-string v2, "all"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "reward"
|
|
||||||
|
|
||||||
const/16 v2, 0x1388
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "goldReward"
|
|
||||||
|
|
||||||
const/16 v2, 0x32
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
return-object v0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception v0
|
|
||||||
|
|
||||||
const-string v1, "RR3_OfflineEvents"
|
|
||||||
|
|
||||||
const-string v2, "Error creating time trial data"
|
|
||||||
|
|
||||||
invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
new-instance v0, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
return-object v0
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static createDefaultDailyBattleData()Lorg/json/JSONObject;
|
|
||||||
.locals 4
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
new-instance v0, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v1, "available"
|
|
||||||
|
|
||||||
const/4 v2, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "name"
|
|
||||||
|
|
||||||
const-string v2, "Offline Daily Battle"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "opponents"
|
|
||||||
|
|
||||||
const/4 v2, 0x3
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "reward"
|
|
||||||
|
|
||||||
const/16 v2, 0x7d0
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "goldReward"
|
|
||||||
|
|
||||||
const/16 v2, 0x14
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
return-object v0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception v0
|
|
||||||
|
|
||||||
const-string v1, "RR3_OfflineEvents"
|
|
||||||
|
|
||||||
const-string v2, "Error creating daily battle data"
|
|
||||||
|
|
||||||
invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
new-instance v0, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
return-object v0
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static createDefaultChampionshipData()Lorg/json/JSONObject;
|
|
||||||
.locals 4
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
new-instance v0, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v1, "available"
|
|
||||||
|
|
||||||
const/4 v2, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "name"
|
|
||||||
|
|
||||||
const-string v2, "Offline Championship"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "season"
|
|
||||||
|
|
||||||
const-string v2, "all_seasons"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "reward"
|
|
||||||
|
|
||||||
const/16 v2, 0x2710
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "goldReward"
|
|
||||||
|
|
||||||
const/16 v2, 0x64
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
return-object v0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception v0
|
|
||||||
|
|
||||||
const-string v1, "RR3_OfflineEvents"
|
|
||||||
|
|
||||||
const-string v2, "Error creating championship data"
|
|
||||||
|
|
||||||
invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
new-instance v0, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
return-object v0
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static createDefaultSpecialEventData()Lorg/json/JSONObject;
|
|
||||||
.locals 4
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
new-instance v0, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v1, "available"
|
|
||||||
|
|
||||||
const/4 v2, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "name"
|
|
||||||
|
|
||||||
const-string v2, "Offline Special Event"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "type"
|
|
||||||
|
|
||||||
const-string v2, "unlimited"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "reward"
|
|
||||||
|
|
||||||
const/16 v2, 0x4e20
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "goldReward"
|
|
||||||
|
|
||||||
const/16 v2, 0xc8
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
return-object v0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception v0
|
|
||||||
|
|
||||||
const-string v1, "RR3_OfflineEvents"
|
|
||||||
|
|
||||||
const-string v2, "Error creating special event data"
|
|
||||||
|
|
||||||
invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
new-instance v0, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
return-object v0
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static isEventAvailable(Ljava/lang/String;)Z
|
|
||||||
.locals 2
|
|
||||||
|
|
||||||
# In offline mode, all events are always available
|
|
||||||
invoke-static {}, Lcom/firemint/realracing/OfflineModeManager;->isOfflineMode()Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-eqz v0, :cond_0
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineEvents"
|
|
||||||
|
|
||||||
new-instance v1, Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
|
|
||||||
|
|
||||||
const-string v0, "Event available (offline): "
|
|
||||||
|
|
||||||
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object p0
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineEvents"
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
const/4 p0, 0x1
|
|
||||||
|
|
||||||
return p0
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# Online mode - let game decide
|
|
||||||
const/4 p0, 0x0
|
|
||||||
|
|
||||||
return p0
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static completeEvent(Landroid/content/Context;Ljava/lang/String;I)V
|
|
||||||
.locals 4
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineEvents"
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
# Log event completion
|
|
||||||
new-instance v1, Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
|
|
||||||
|
|
||||||
const-string v2, "Event completed: "
|
|
||||||
|
|
||||||
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
const-string v2, " | Position: "
|
|
||||||
|
|
||||||
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object v1
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
# Award rewards based on position
|
|
||||||
invoke-static {p0, p1, p2}, Lcom/firemint/realracing/OfflineEventsManager;->awardEventRewards(Landroid/content/Context;Ljava/lang/String;I)V
|
|
||||||
:try_end_0
|
|
||||||
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p0
|
|
||||||
|
|
||||||
const-string p1, "Error completing event"
|
|
||||||
|
|
||||||
invoke-static {v0, p1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static awardEventRewards(Landroid/content/Context;Ljava/lang/String;I)V
|
|
||||||
.locals 5
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineEvents"
|
|
||||||
|
|
||||||
# Base rewards (1st place)
|
|
||||||
const/16 v1, 0x1388 # 5000 M$
|
|
||||||
const/16 v2, 0x32 # 50 Gold
|
|
||||||
|
|
||||||
# Adjust based on position
|
|
||||||
const/4 v3, 0x1
|
|
||||||
|
|
||||||
if-ne p2, v3, :cond_1st
|
|
||||||
|
|
||||||
# 1st place - 100%
|
|
||||||
goto :cond_award
|
|
||||||
|
|
||||||
:cond_1st
|
|
||||||
const/4 v3, 0x2
|
|
||||||
|
|
||||||
if-ne p2, v3, :cond_2nd
|
|
||||||
|
|
||||||
# 2nd place - 75%
|
|
||||||
mul-int/lit8 v1, v1, 0x3
|
|
||||||
|
|
||||||
div-int/lit8 v1, v1, 0x4
|
|
||||||
|
|
||||||
mul-int/lit8 v2, v2, 0x3
|
|
||||||
|
|
||||||
div-int/lit8 v2, v2, 0x4
|
|
||||||
|
|
||||||
goto :cond_award
|
|
||||||
|
|
||||||
:cond_2nd
|
|
||||||
const/4 v3, 0x3
|
|
||||||
|
|
||||||
if-ne p2, v3, :cond_3rd
|
|
||||||
|
|
||||||
# 3rd place - 50%
|
|
||||||
div-int/lit8 v1, v1, 0x2
|
|
||||||
|
|
||||||
div-int/lit8 v2, v2, 0x2
|
|
||||||
|
|
||||||
goto :cond_award
|
|
||||||
|
|
||||||
:cond_3rd
|
|
||||||
# 4th+ place - 25%
|
|
||||||
div-int/lit8 v1, v1, 0x4
|
|
||||||
|
|
||||||
div-int/lit8 v2, v2, 0x4
|
|
||||||
|
|
||||||
:cond_award
|
|
||||||
# Award the rewards
|
|
||||||
invoke-static {p0, v1}, Lcom/firemint/realracing/OfflineCurrencyManager;->addCash(Landroid/content/Context;I)V
|
|
||||||
|
|
||||||
invoke-static {p0, v2}, Lcom/firemint/realracing/OfflineCurrencyManager;->addGold(Landroid/content/Context;I)V
|
|
||||||
|
|
||||||
# Log rewards
|
|
||||||
new-instance p0, Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-direct {p0}, Ljava/lang/StringBuilder;-><init>()V
|
|
||||||
|
|
||||||
const-string p1, "Awarded: "
|
|
||||||
|
|
||||||
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
const-string p1, " M$, "
|
|
||||||
|
|
||||||
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-virtual {p0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
const-string p1, " Gold"
|
|
||||||
|
|
||||||
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object p0
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static bypassEventValidation()Z
|
|
||||||
.locals 2
|
|
||||||
|
|
||||||
# Always bypass validation in offline mode
|
|
||||||
invoke-static {}, Lcom/firemint/realracing/OfflineModeManager;->isOfflineMode()Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-eqz v0, :cond_0
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineEvents"
|
|
||||||
|
|
||||||
const-string v1, "Bypassing event validation (offline mode)"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
const/4 v0, 0x1
|
|
||||||
|
|
||||||
return v0
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
const/4 v0, 0x0
|
|
||||||
|
|
||||||
return v0
|
|
||||||
.end method
|
|
||||||
@@ -1,682 +0,0 @@
|
|||||||
.class public Lcom/firemint/realracing/OfflineResponseMock;
|
|
||||||
.super Ljava/lang/Object;
|
|
||||||
.source "OfflineResponseMock.java"
|
|
||||||
|
|
||||||
|
|
||||||
# static fields
|
|
||||||
.field private static final TAG:Ljava/lang/String; = "RR3_OfflineResponseMock"
|
|
||||||
|
|
||||||
|
|
||||||
# direct methods
|
|
||||||
.method public constructor <init>()V
|
|
||||||
.locals 0
|
|
||||||
|
|
||||||
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method public static handleRequest(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
.locals 4
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineResponseMock"
|
|
||||||
|
|
||||||
const-string v1, "Handling offline request"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
# Get URL from request
|
|
||||||
iget-object v1, p0, Lcom/ea/nimble/HttpRequest;->url:Ljava/net/URL;
|
|
||||||
|
|
||||||
if-nez v1, :cond_0
|
|
||||||
|
|
||||||
const-string p0, "Request URL is null"
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
invoke-virtual {v1}, Ljava/net/URL;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object v1
|
|
||||||
|
|
||||||
# Log the request
|
|
||||||
new-instance v2, Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
|
|
||||||
|
|
||||||
const-string v3, "Mocking request to: "
|
|
||||||
|
|
||||||
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object v2
|
|
||||||
|
|
||||||
invoke-static {v0, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
# Check URL and route to appropriate mock
|
|
||||||
const-string v0, "dailyreward"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-eqz v0, :cond_1
|
|
||||||
|
|
||||||
invoke-static {p0, p1, p2}, Lcom/firemint/realracing/OfflineResponseMock;->mockDailyRewardResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_1
|
|
||||||
const-string v0, "auth"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-eqz v0, :cond_2
|
|
||||||
|
|
||||||
invoke-static {p0, p1, p2}, Lcom/firemint/realracing/OfflineResponseMock;->mockAuthResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_2
|
|
||||||
const-string v0, "profile"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-eqz v0, :cond_3
|
|
||||||
|
|
||||||
invoke-static {p0, p1, p2}, Lcom/firemint/realracing/OfflineResponseMock;->mockProfileResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_3
|
|
||||||
# Default: mock generic success response
|
|
||||||
const-string v0, "event"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-eqz v0, :cond_4
|
|
||||||
|
|
||||||
invoke-static {p0, p1, p2}, Lcom/firemint/realracing/OfflineResponseMock;->mockEventResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_4
|
|
||||||
const-string v0, "lts"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-nez v0, :cond_lts
|
|
||||||
|
|
||||||
const-string v0, "timetrial"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-eqz v0, :cond_5
|
|
||||||
|
|
||||||
:cond_lts
|
|
||||||
invoke-static {p0, p1, p2}, Lcom/firemint/realracing/OfflineResponseMock;->mockTimeTrialResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_5
|
|
||||||
const-string v0, "battle"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-eqz v0, :cond_6
|
|
||||||
|
|
||||||
invoke-static {p0, p1, p2}, Lcom/firemint/realracing/OfflineResponseMock;->mockDailyBattleResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_6
|
|
||||||
const-string v0, "championship"
|
|
||||||
|
|
||||||
invoke-virtual {v1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
|
|
||||||
|
|
||||||
move-result v0
|
|
||||||
|
|
||||||
if-eqz v0, :cond_7
|
|
||||||
|
|
||||||
invoke-static {p0, p1, p2}, Lcom/firemint/realracing/OfflineResponseMock;->mockChampionshipResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_7
|
|
||||||
# Default: mock generic success response
|
|
||||||
invoke-static {p0, p1, p2}, Lcom/firemint/realracing/OfflineResponseMock;->mockGenericSuccess(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static mockEventResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
.locals 3
|
|
||||||
|
|
||||||
const-string p0, "RR3_OfflineResponseMock"
|
|
||||||
|
|
||||||
const-string v0, "Mocking generic event response"
|
|
||||||
|
|
||||||
invoke-static {p0, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
new-instance v0, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v1, "available"
|
|
||||||
|
|
||||||
const/4 v2, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "canParticipate"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "validated"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object v0
|
|
||||||
|
|
||||||
invoke-static {p1, v0}, Lcom/firemint/realracing/OfflineResponseMock;->sendMockResponse(Lcom/ea/nimble/NetworkConnectionCallback;Ljava/lang/String;)V
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p1
|
|
||||||
|
|
||||||
const-string p2, "Error creating event mock"
|
|
||||||
|
|
||||||
invoke-static {p0, p2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static mockTimeTrialResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
.locals 3
|
|
||||||
|
|
||||||
const-string p0, "RR3_OfflineResponseMock"
|
|
||||||
|
|
||||||
const-string v0, "Mocking time trial response"
|
|
||||||
|
|
||||||
invoke-static {p0, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
new-instance v0, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v1, "available"
|
|
||||||
|
|
||||||
const/4 v2, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "track"
|
|
||||||
|
|
||||||
const-string v2, "brands_hatch"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "carClass"
|
|
||||||
|
|
||||||
const-string v2, "all"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "reward"
|
|
||||||
|
|
||||||
const/16 v2, 0x1388
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "goldReward"
|
|
||||||
|
|
||||||
const/16 v2, 0x32
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object v0
|
|
||||||
|
|
||||||
invoke-static {p1, v0}, Lcom/firemint/realracing/OfflineResponseMock;->sendMockResponse(Lcom/ea/nimble/NetworkConnectionCallback;Ljava/lang/String;)V
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p1
|
|
||||||
|
|
||||||
const-string p2, "Error creating time trial mock"
|
|
||||||
|
|
||||||
invoke-static {p0, p2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static mockDailyBattleResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
.locals 3
|
|
||||||
|
|
||||||
const-string p0, "RR3_OfflineResponseMock"
|
|
||||||
|
|
||||||
const-string v0, "Mocking daily battle response"
|
|
||||||
|
|
||||||
invoke-static {p0, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
new-instance v0, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v1, "available"
|
|
||||||
|
|
||||||
const/4 v2, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "opponents"
|
|
||||||
|
|
||||||
const/4 v2, 0x3
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "reward"
|
|
||||||
|
|
||||||
const/16 v2, 0x7d0
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "goldReward"
|
|
||||||
|
|
||||||
const/16 v2, 0x14
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object v0
|
|
||||||
|
|
||||||
invoke-static {p1, v0}, Lcom/firemint/realracing/OfflineResponseMock;->sendMockResponse(Lcom/ea/nimble/NetworkConnectionCallback;Ljava/lang/String;)V
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p1
|
|
||||||
|
|
||||||
const-string p2, "Error creating daily battle mock"
|
|
||||||
|
|
||||||
invoke-static {p0, p2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static mockChampionshipResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
.locals 3
|
|
||||||
|
|
||||||
const-string p0, "RR3_OfflineResponseMock"
|
|
||||||
|
|
||||||
const-string v0, "Mocking championship response"
|
|
||||||
|
|
||||||
invoke-static {p0, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
new-instance v0, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v1, "available"
|
|
||||||
|
|
||||||
const/4 v2, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "season"
|
|
||||||
|
|
||||||
const-string v2, "all_seasons"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "reward"
|
|
||||||
|
|
||||||
const/16 v2, 0x2710
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "goldReward"
|
|
||||||
|
|
||||||
const/16 v2, 0x64
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object v0
|
|
||||||
|
|
||||||
invoke-static {p1, v0}, Lcom/firemint/realracing/OfflineResponseMock;->sendMockResponse(Lcom/ea/nimble/NetworkConnectionCallback;Ljava/lang/String;)V
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p1
|
|
||||||
|
|
||||||
const-string p2, "Error creating championship mock"
|
|
||||||
|
|
||||||
invoke-static {p0, p2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static mockDailyRewardResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
.locals 4
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineResponseMock"
|
|
||||||
|
|
||||||
const-string v1, "Mocking daily reward response"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
# Create JSON response
|
|
||||||
new-instance v1, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v1}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v2, "available"
|
|
||||||
|
|
||||||
const/4 v3, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v2, "gold"
|
|
||||||
|
|
||||||
const/16 v3, 0x32
|
|
||||||
|
|
||||||
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v2, "cash"
|
|
||||||
|
|
||||||
const/16 v3, 0x1388
|
|
||||||
|
|
||||||
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v2, "streak"
|
|
||||||
|
|
||||||
const/4 v3, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Convert to string
|
|
||||||
invoke-virtual {v1}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object v1
|
|
||||||
|
|
||||||
# Send mock response
|
|
||||||
invoke-static {p1, v1}, Lcom/firemint/realracing/OfflineResponseMock;->sendMockResponse(Lcom/ea/nimble/NetworkConnectionCallback;Ljava/lang/String;)V
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p0
|
|
||||||
|
|
||||||
const-string p1, "Error creating daily reward mock"
|
|
||||||
|
|
||||||
invoke-static {v0, p1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static mockAuthResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
.locals 3
|
|
||||||
|
|
||||||
const-string p0, "RR3_OfflineResponseMock"
|
|
||||||
|
|
||||||
const-string v0, "Mocking auth response"
|
|
||||||
|
|
||||||
invoke-static {p0, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
# Create JSON response
|
|
||||||
new-instance v0, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v1, "success"
|
|
||||||
|
|
||||||
const/4 v2, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "userId"
|
|
||||||
|
|
||||||
const-string v2, "offline_user_001"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "token"
|
|
||||||
|
|
||||||
const-string v2, "offline_token_mock"
|
|
||||||
|
|
||||||
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Convert to string
|
|
||||||
invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object v0
|
|
||||||
|
|
||||||
# Send mock response
|
|
||||||
invoke-static {p1, v0}, Lcom/firemint/realracing/OfflineResponseMock;->sendMockResponse(Lcom/ea/nimble/NetworkConnectionCallback;Ljava/lang/String;)V
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p1
|
|
||||||
|
|
||||||
const-string p2, "Error creating auth mock"
|
|
||||||
|
|
||||||
invoke-static {p0, p2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static mockProfileResponse(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
.locals 4
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineResponseMock"
|
|
||||||
|
|
||||||
const-string v1, "Mocking profile response"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
# Get currency from LocalSaveManager
|
|
||||||
const-string v1, "cash"
|
|
||||||
|
|
||||||
invoke-static {p2, v1}, Lcom/firemint/realracing/LocalSaveManager;->getCurrency(Landroid/content/Context;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
move-result v1
|
|
||||||
|
|
||||||
const-string v2, "gold"
|
|
||||||
|
|
||||||
invoke-static {p2, v2}, Lcom/firemint/realracing/LocalSaveManager;->getCurrency(Landroid/content/Context;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
move-result p2
|
|
||||||
|
|
||||||
# Create JSON response
|
|
||||||
new-instance v2, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {v2}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v3, "cash"
|
|
||||||
|
|
||||||
invoke-virtual {v2, v3, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v1, "gold"
|
|
||||||
|
|
||||||
invoke-virtual {v2, v1, p2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string p2, "level"
|
|
||||||
|
|
||||||
const/4 v1, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {v2, p2, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string p2, "name"
|
|
||||||
|
|
||||||
const-string v1, "Offline Player"
|
|
||||||
|
|
||||||
invoke-virtual {v2, p2, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Convert to string
|
|
||||||
invoke-virtual {v2}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object p2
|
|
||||||
|
|
||||||
# Send mock response
|
|
||||||
invoke-static {p1, p2}, Lcom/firemint/realracing/OfflineResponseMock;->sendMockResponse(Lcom/ea/nimble/NetworkConnectionCallback;Ljava/lang/String;)V
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p0
|
|
||||||
|
|
||||||
const-string p1, "Error creating profile mock"
|
|
||||||
|
|
||||||
invoke-static {v0, p1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static mockGenericSuccess(Lcom/ea/nimble/HttpRequest;Lcom/ea/nimble/NetworkConnectionCallback;Landroid/content/Context;)V
|
|
||||||
.locals 2
|
|
||||||
|
|
||||||
const-string p0, "RR3_OfflineResponseMock"
|
|
||||||
|
|
||||||
const-string p2, "Mocking generic success response"
|
|
||||||
|
|
||||||
invoke-static {p0, p2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
:try_start_0
|
|
||||||
# Create JSON response
|
|
||||||
new-instance p2, Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
invoke-direct {p2}, Lorg/json/JSONObject;-><init>()V
|
|
||||||
|
|
||||||
const-string v0, "success"
|
|
||||||
|
|
||||||
const/4 v1, 0x1
|
|
||||||
|
|
||||||
invoke-virtual {p2, v0, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
const-string v0, "message"
|
|
||||||
|
|
||||||
const-string v1, "OK (offline mock)"
|
|
||||||
|
|
||||||
invoke-virtual {p2, v0, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
|
|
||||||
|
|
||||||
# Convert to string
|
|
||||||
invoke-virtual {p2}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object p2
|
|
||||||
|
|
||||||
# Send mock response
|
|
||||||
invoke-static {p1, p2}, Lcom/firemint/realracing/OfflineResponseMock;->sendMockResponse(Lcom/ea/nimble/NetworkConnectionCallback;Ljava/lang/String;)V
|
|
||||||
:try_end_0
|
|
||||||
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
|
|
||||||
|
|
||||||
goto :goto_0
|
|
||||||
|
|
||||||
:catch_0
|
|
||||||
move-exception p1
|
|
||||||
|
|
||||||
const-string p2, "Error creating generic mock"
|
|
||||||
|
|
||||||
invoke-static {p0, p2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
||||||
|
|
||||||
:goto_0
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
|
|
||||||
.method private static sendMockResponse(Lcom/ea/nimble/NetworkConnectionCallback;Ljava/lang/String;)V
|
|
||||||
.locals 2
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineResponseMock"
|
|
||||||
|
|
||||||
if-nez p0, :cond_0
|
|
||||||
|
|
||||||
const-string p0, "Callback is null, cannot send response"
|
|
||||||
|
|
||||||
invoke-static {v0, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
return-void
|
|
||||||
|
|
||||||
:cond_0
|
|
||||||
# Log the mocked response
|
|
||||||
new-instance v1, Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
|
|
||||||
|
|
||||||
const-string v0, "Sending mock response: "
|
|
||||||
|
|
||||||
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
||||||
|
|
||||||
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
||||||
|
|
||||||
move-result-object v1
|
|
||||||
|
|
||||||
const-string v0, "RR3_OfflineResponseMock"
|
|
||||||
|
|
||||||
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
# TODO: Actually invoke the callback with mock response
|
|
||||||
# This requires understanding the NetworkConnectionCallback interface
|
|
||||||
# For now, just log that we would send the response
|
|
||||||
|
|
||||||
const-string p1, "Mock response prepared (callback invocation not yet implemented)"
|
|
||||||
|
|
||||||
invoke-static {v0, p1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
|
|
||||||
|
|
||||||
return-void
|
|
||||||
.end method
|
|
||||||
Reference in New Issue
Block a user