Features: - SettingsActivity accessible via Menu button (keycode 82) - Configure server URL and mode (online/offline) in-game - Test connection before saving settings - Switch to offline mode with one tap - Sync settings from web admin panel - Real-time status messages with emoji indicators Implementation: - Created 13 SettingsActivity Smali files (main + inner classes) - Created activity_settings.xml UI layout - Added SettingsActivity to AndroidManifest.xml (portrait mode) - Modified MainActivity.smali to handle Menu button press - Integrated with existing ServerManager for Nimble SDK overrides - Settings stored in SharedPreferences (rr3_server_config.xml) APK: - Built and signed: RR3-v14-Settings-Menu.apk (103 MB) - Keystore: rr3-release.keystore (alias: rr3key) - Ready for distribution Related server changes: - ServerSettingsController.cs with 3 API endpoints - DeviceSettings.cshtml admin page - UserSettings database model and migration Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
117 lines
3.4 KiB
Smali
117 lines
3.4 KiB
Smali
.class Lcom/firemint/realracing/SettingsActivity$3;
|
|
.super Ljava/lang/Object;
|
|
.source "SettingsActivity.java"
|
|
|
|
# interfaces
|
|
.implements Landroid/view/View$OnClickListener;
|
|
|
|
# annotations
|
|
.annotation system Ldalvik/annotation/EnclosingMethod;
|
|
value = Lcom/firemint/realracing/SettingsActivity;->onCreate(Landroid/os/Bundle;)V
|
|
.end annotation
|
|
|
|
.annotation system Ldalvik/annotation/InnerClass;
|
|
accessFlags = 0x0
|
|
name = null
|
|
.end annotation
|
|
|
|
# instance fields
|
|
.field final synthetic this$0:Lcom/firemint/realracing/SettingsActivity;
|
|
|
|
# direct methods
|
|
.method constructor <init>(Lcom/firemint/realracing/SettingsActivity;)V
|
|
.registers 2
|
|
.param p1, "this$0" # Lcom/firemint/realracing/SettingsActivity;
|
|
|
|
.line 157
|
|
iput-object p1, p0, Lcom/firemint/realracing/SettingsActivity$3;->this$0:Lcom/firemint/realracing/SettingsActivity;
|
|
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
# virtual methods
|
|
.method public onClick(Landroid/view/View;)V
|
|
.registers 7
|
|
.param p1, "v" # Landroid/view/View;
|
|
|
|
.line 160
|
|
iget-object v0, p0, Lcom/firemint/realracing/SettingsActivity$3;->this$0:Lcom/firemint/realracing/SettingsActivity;
|
|
|
|
const v1, 0x7f0a047b
|
|
|
|
invoke-virtual {v0, v1}, Lcom/firemint/realracing/SettingsActivity;->findViewById(I)Landroid/view/View;
|
|
|
|
move-result-object v0
|
|
|
|
check-cast v0, Landroid/widget/EditText;
|
|
|
|
.line 161
|
|
.local v0, "etServerUrl":Landroid/widget/EditText;
|
|
invoke-virtual {v0}, Landroid/widget/EditText;->getText()Landroid/text/Editable;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
.line 163
|
|
.local v1, "newUrl":Ljava/lang/String;
|
|
invoke-virtual {v1}, Ljava/lang/String;->isEmpty()Z
|
|
|
|
move-result v2
|
|
|
|
if-eqz v2, :cond_2b
|
|
|
|
.line 164
|
|
iget-object v2, p0, Lcom/firemint/realracing/SettingsActivity$3;->this$0:Lcom/firemint/realracing/SettingsActivity;
|
|
|
|
const-string v3, "\u26a0\ufe0f Please enter a server URL"
|
|
|
|
invoke-virtual {v2, v3}, Lcom/firemint/realracing/SettingsActivity;->showStatus(Ljava/lang/String;)V
|
|
|
|
.line 165
|
|
return-void
|
|
|
|
.line 168
|
|
:cond_2b
|
|
iget-object v2, p0, Lcom/firemint/realracing/SettingsActivity$3;->this$0:Lcom/firemint/realracing/SettingsActivity;
|
|
|
|
const-string v3, "online"
|
|
|
|
invoke-virtual {v2, v3, v1}, Lcom/firemint/realracing/SettingsActivity;->saveSettings(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
.line 169
|
|
iget-object v2, p0, Lcom/firemint/realracing/SettingsActivity$3;->this$0:Lcom/firemint/realracing/SettingsActivity;
|
|
|
|
const-string v3, "\u2705 Settings saved! Restart the game to apply."
|
|
|
|
invoke-virtual {v2, v3}, Lcom/firemint/realracing/SettingsActivity;->showStatus(Ljava/lang/String;)V
|
|
|
|
.line 171
|
|
iget-object v2, p0, Lcom/firemint/realracing/SettingsActivity$3;->this$0:Lcom/firemint/realracing/SettingsActivity;
|
|
|
|
const v3, 0x7f0a0b87
|
|
|
|
invoke-virtual {v2, v3}, Lcom/firemint/realracing/SettingsActivity;->findViewById(I)Landroid/view/View;
|
|
|
|
move-result-object v2
|
|
|
|
check-cast v2, Landroid/widget/TextView;
|
|
|
|
.line 172
|
|
.local v2, "tvMode":Landroid/widget/TextView;
|
|
const-string v3, "\ud83c\udf0d Online Mode"
|
|
|
|
invoke-virtual {v2, v3}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
|
|
|
|
.line 173
|
|
return-void
|
|
.end method
|