.class public Lcom/community/CommunityServerManager; .super Ljava/lang/Object; .source "CommunityServerManager.java" # instance fields .field private context:Landroid/content/Context; # static fields .field private static final PREFS_NAME:Ljava/lang/String; = "com.ea.games.r3_row_preferences" .field private static final KEY_SERVERS:Ljava/lang/String; = "community_servers" .field private static final KEY_ACTIVE_SERVER:Ljava/lang/String; = "active_server_id" .field private static final KEY_ACTIVE_URL:Ljava/lang/String; = "active_server_url" .field private static final KEY_EDITING_SERVER:Ljava/lang/String; = "editing_server_id" # direct methods .method public constructor (Landroid/content/Context;)V .registers 2 .param p1, "context" # Landroid/content/Context; invoke-direct {p0}, Ljava/lang/Object;->()V iput-object p1, p0, Lcom/community/CommunityServerManager;->context:Landroid/content/Context; return-void .end method # virtual methods .method public getServers()Ljava/lang/String; .registers 5 .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation iget-object v0, p0, Lcom/community/CommunityServerManager;->context:Landroid/content/Context; const-string v1, "com.ea.games.r3_row_preferences" const/4 v2, 0x0 invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; move-result-object v0 const-string v1, "community_servers" const-string v2, "[]" invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public getActiveServerId()Ljava/lang/String; .registers 5 .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation iget-object v0, p0, Lcom/community/CommunityServerManager;->context:Landroid/content/Context; const-string v1, "com.ea.games.r3_row_preferences" const/4 v2, 0x0 invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; move-result-object v0 const-string v1, "active_server_id" const-string v2, "" invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public getActiveServerUrl()Ljava/lang/String; .registers 5 iget-object v0, p0, Lcom/community/CommunityServerManager;->context:Landroid/content/Context; const-string v1, "com.ea.games.r3_row_preferences" const/4 v2, 0x0 invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; move-result-object v0 const-string v1, "active_server_url" const-string v2, "" invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public getServerById(Ljava/lang/String;)Ljava/lang/String; .registers 3 .param p1, "serverId" # Ljava/lang/String; .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation # Simplified - returns empty object # Real implementation would parse JSON and find server const-string v0, "{}" return-object v0 .end method .method public addServer(Ljava/lang/String;)V .registers 6 .param p1, "serverJson" # Ljava/lang/String; .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation iget-object v0, p0, Lcom/community/CommunityServerManager;->context:Landroid/content/Context; const-string v1, "com.ea.games.r3_row_preferences" const/4 v2, 0x0 invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; move-result-object v0 # Get existing servers const-string v1, "community_servers" const-string v2, "[]" invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v3 # Simplified - just saves the new JSON # Real implementation would append to array invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v1 const-string v2, "community_servers" invoke-interface {v1, v2, p1}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->apply()V return-void .end method .method public updateServer(Ljava/lang/String;)V .registers 2 .param p1, "serverJson" # Ljava/lang/String; .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation # Simplified - same as addServer invoke-virtual {p0, p1}, Lcom/community/CommunityServerManager;->addServer(Ljava/lang/String;)V return-void .end method .method public setActiveServer(Ljava/lang/String;)V .registers 6 .param p1, "serverId" # Ljava/lang/String; .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation iget-object v0, p0, Lcom/community/CommunityServerManager;->context:Landroid/content/Context; const-string v1, "com.ea.games.r3_row_preferences" const/4 v2, 0x0 invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; move-result-object v0 invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v1 const-string v2, "active_server_id" invoke-interface {v1, v2, p1}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; # Also set active URL (simplified - should lookup from servers JSON) const-string v2, "active_server_url" const-string v3, "http://localhost:5001" invoke-interface {v1, v2, v3}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->apply()V return-void .end method .method public deleteServer(Ljava/lang/String;)V .registers 2 .param p1, "serverId" # Ljava/lang/String; .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation # Simplified - would need to parse JSON and remove entry return-void .end method .method public showToast(Ljava/lang/String;)V .registers 5 .param p1, "message" # Ljava/lang/String; .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation iget-object v0, p0, Lcom/community/CommunityServerManager;->context:Landroid/content/Context; const/4 v1, 0x0 invoke-static {v0, p1, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast; move-result-object v0 invoke-virtual {v0}, Landroid/widget/Toast;->show()V return-void .end method .method public closeScreen()V .registers 1 .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation # Would need activity reference to call finish() return-void .end method .method public openServerEdit(Ljava/lang/String;)V .registers 6 .param p1, "serverId" # Ljava/lang/String; .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation # Save editing server ID iget-object v0, p0, Lcom/community/CommunityServerManager;->context:Landroid/content/Context; const-string v1, "com.ea.games.r3_row_preferences" const/4 v2, 0x0 invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; move-result-object v0 invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v1 const-string v2, "editing_server_id" invoke-interface {v1, v2, p1}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->apply()V # Would launch ServerEditActivity here return-void .end method .method public getEditingServerId()Ljava/lang/String; .registers 5 .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation iget-object v0, p0, Lcom/community/CommunityServerManager;->context:Landroid/content/Context; const-string v1, "com.ea.games.r3_row_preferences" const/4 v2, 0x0 invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; move-result-object v0 const-string v1, "editing_server_id" const-string v2, "" invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public goBackToServerList()V .registers 1 .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation # Would finish activity and return to list return-void .end method .method public pingServer(Ljava/lang/String;Ljava/lang/String;)V .registers 3 .param p1, "serverId" # Ljava/lang/String; .param p2, "url" # Ljava/lang/String; .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation # Would spawn async task to ping server # Then call JavaScript: updateServerStatus(serverId, isOnline) return-void .end method .method public testConnection(Ljava/lang/String;)V .registers 2 .param p1, "url" # Ljava/lang/String; .annotation runtime Landroid/webkit/JavascriptInterface; .end annotation # Would test connection and call showTestResult() in JavaScript return-void .end method