Phase 4: Add Special Events Offline Support (Discord Phase 2 Complete!)
- Created OfflineEventsManager.smali (all event types supported) - Time Trials / Limited Time Series (LTS) available offline - Daily Battles available offline - Seasonal Championships available offline - Special Events available offline - Event validation bypassed in offline mode - Automatic rewards based on finishing position - Modified OfflineResponseMock to handle event API calls - Builds successfully - DISCORD PHASE 2 COMPLETE! Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -99,11 +99,305 @@
|
||||
|
||||
: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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user