- Move init calls from onCreate() to Handler.postDelayed() - Create OfflineInitRunnable inner class for delayed execution - Add try-catch wrapper for safety - Add detailed logging for debugging This fixes the crash caused by offline managers trying to access Context/SharedPreferences before Android system fully initializes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
109 lines
3.3 KiB
Smali
109 lines
3.3 KiB
Smali
.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
|