Commit Graph

8 Commits

Author SHA1 Message Date
7438e7efeb Add in-game settings menu with web panel sync
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>
2026-02-19 10:19:39 -08:00
e8a5cbcd7e Add community server selection system
- NEW: ServerSelectionActivity as main launcher
  - Beautiful startup menu (Offline/Online modes)
  - URL input dialog with custom port support
  - Quick select presets (Official/Local/Custom)
  - 'Remember my choice' persistence
  - Help dialog for first-time users

- NEW: ServerManager for Nimble SDK URL overrides
  - Automatically configures all EA endpoints
  - Supports custom ports (:8443, :3000, etc.)
  - Comprehensive error handling and logging

- Modified MainActivity to read Intent extras
  - Reads mode (online/offline) from ServerSelectionActivity
  - Configures custom server before game init
  - Maintains backward compatibility

- Modified AndroidManifest.xml
  - ServerSelectionActivity is now LAUNCHER
  - UnpackAssetsActivity no longer exports MAIN intent
  - Intent extras preserved through activity chain

- Added XML layouts
  - activity_server_selection.xml (main menu UI)
  - dialog_server_input.xml (URL input dialog)

- Server URL format: https://domain.com:port
- SharedPreferences: rr3_server_config.xml

Ready for Phase 2: Community server backend implementation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-19 00:50:20 -08:00
8f2e2f78f3 Fix startup crash: Delay offline manager initialization by 500ms
- 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>
2026-02-18 21:25:51 -08:00
c5253880a0 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>
2026-02-18 18:05:23 -08:00
3d380d3c6b Phase 3: Add Offline Currency System
- Created OfflineCurrencyManager.smali (unlimited currency for offline)
- Sets 100M M\$ and 10M Gold on initialization
- Provides getCash/getGold methods for offline play
- Supports both unlimited and tracked currency modes
- Modified MainActivity to initialize currency manager
- Builds successfully

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 18:00:24 -08:00
5bf771f4c1 Phase 2: Add Network Bypass for offline mode
- Created OfflineModeManager.smali (toggle offline mode)
- Created OfflineResponseMock.smali (mock API responses)
- Modified NetworkImpl to check offline mode
- Modified MainActivity initialization
- Builds successfully

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 17:48:44 -08:00
c25e937818 Phase 1: Add LocalSaveManager for offline mode
- Created LocalSaveManager.smali with JSON save/load functionality
- Implements save file at /sdcard/Android/data/com.ea.games.r3_row/files/offline_save.json
- Added currency helper methods (getCurrency, setCurrency)
- Initialized in MainActivity.onCreate()
- Save structure includes: player, currency, dailyReward, cars, progress

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 17:24:35 -08:00
f3960ee359 Add Discord APKTool decompilation (Smali source for modding)
- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3
- APKTool decompilation (Smali bytecode) for modding and rebuilding APK
- Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures
- Includes full Smali source, resources, and native libraries
- Ready to rebuild APK after modifications with apktool b command
- Added comprehensive README-apktool.md with modding guide

This branch complements the JADX branches:
- Use JADX (main/discord-community) to UNDERSTAND code (readable Java)
- Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali)

Total: 44,417 files, 538.51 MB Smali source code
2026-02-18 16:13:44 -08:00