diff --git a/build/apk/AndroidManifest.xml b/build/apk/AndroidManifest.xml index 897587ead..fca64444d 100644 Binary files a/build/apk/AndroidManifest.xml and b/build/apk/AndroidManifest.xml differ diff --git a/build/apk/classes2.dex b/build/apk/classes2.dex index 7830d446e..d5a2af86f 100644 Binary files a/build/apk/classes2.dex and b/build/apk/classes2.dex differ diff --git a/smali_classes2/com/firemint/realracing/LocalSaveManager.smali b/smali_classes2/com/firemint/realracing/LocalSaveManager.smali deleted file mode 100644 index 2d427eccd..000000000 --- a/smali_classes2/com/firemint/realracing/LocalSaveManager.smali +++ /dev/null @@ -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 ()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 ()V - .locals 0 - - invoke-direct {p0}, Ljava/lang/Object;->()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;->(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;->()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;->()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;->()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;->()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;->()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;->()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;->(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;->([BLjava/lang/String;)V - - # Parse JSON - new-instance v2, Lorg/json/JSONObject; - - invoke-direct {v2, v1}, Lorg/json/JSONObject;->(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;->(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 diff --git a/smali_classes2/com/firemint/realracing/MainActivity$OfflineInitRunnable.smali b/smali_classes2/com/firemint/realracing/MainActivity$OfflineInitRunnable.smali deleted file mode 100644 index e2d984a23..000000000 --- a/smali_classes2/com/firemint/realracing/MainActivity$OfflineInitRunnable.smali +++ /dev/null @@ -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 (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;->()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 diff --git a/smali_classes2/com/firemint/realracing/OfflineCurrencyManager.smali b/smali_classes2/com/firemint/realracing/OfflineCurrencyManager.smali deleted file mode 100644 index 599e09a15..000000000 --- a/smali_classes2/com/firemint/realracing/OfflineCurrencyManager.smali +++ /dev/null @@ -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 ()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 ()V - .locals 0 - - invoke-direct {p0}, Ljava/lang/Object;->()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 diff --git a/smali_classes2/com/firemint/realracing/OfflineEventsManager.smali b/smali_classes2/com/firemint/realracing/OfflineEventsManager.smali deleted file mode 100644 index 0b851d099..000000000 --- a/smali_classes2/com/firemint/realracing/OfflineEventsManager.smali +++ /dev/null @@ -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 ()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 ()V - .locals 0 - - invoke-direct {p0}, Ljava/lang/Object;->()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;->()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;->()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;->()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;->()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;->()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;->()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;->()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;->()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;->()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;->()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;->()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;->()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 diff --git a/smali_classes2/com/firemint/realracing/OfflineResponseMock.smali b/smali_classes2/com/firemint/realracing/OfflineResponseMock.smali deleted file mode 100644 index 83aff84ed..000000000 --- a/smali_classes2/com/firemint/realracing/OfflineResponseMock.smali +++ /dev/null @@ -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 ()V - .locals 0 - - invoke-direct {p0}, Ljava/lang/Object;->()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;->()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;->()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;->()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;->()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;->()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;->()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;->()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;->()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;->()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;->()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