[Client] Mobile - #21
Draft
MaatheusGois wants to merge 45 commits into
Draft
Conversation
Scaffold an Android Gradle app that hosts the desktop client via software rendering, stubbed native libraries, and a voidawt compatibility layer. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the client filling the phone, wire touch/keyboard, and add a RoboVM host so the 634 client can boot on iOS. Co-authored-by: Cursor <cursoragent@cursor.com>
Stop the keyboard from resizing the game surface, and hide system bars so the viewport stays full-screen. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace silent javax.sound stubs with ByteRing + AudioTrack (Android) and AudioQueue (iOS) so the 634 mixer can play music/SFX; document the path in ARCHITECTURE. Co-authored-by: Cursor <cursoragent@cursor.com>
MaatheusGois
marked this pull request as draft
August 23, 2026 18:43
Detect UI presses that need typing (key listeners / login text widgets), hide the keyboard FAB, and bridge through AwtHost so the system IME opens without a floating button. Co-authored-by: Cursor <cursoragent@cursor.com>
Expand the READMEs with server prerequisites, install/launch commands, adb reverse, arm64 JDK notes for Simulator, and updated touch/keyboard controls. Co-authored-by: Cursor <cursoragent@cursor.com>
Document desktop/Android/iOS from void-client only: how to launch and how to point each client at the game server IP, without monorepo server targets. Co-authored-by: Cursor <cursoragent@cursor.com>
Wire launcher mipmaps / adaptive icons and iOS AppIcon assets from the branding 1024px source so both mobile clients show the Void mark on the home screen. Co-authored-by: Cursor <cursoragent@cursor.com>
Ignore transient SurfaceView shrinks from system-bar flashes and re-apply the last stable size on resume/focus so the game does not stick at roughly half size. Co-authored-by: Cursor <cursoragent@cursor.com>
Opens/closes the console without relying on the ` key, shows the soft keyboard after open, and dismisses the IME early on multi-touch so close gestures can finish. Co-authored-by: Cursor <cursoragent@cursor.com>
Desktop keeps the classic 350px band; Android/iOS use 175px so the purple overlay covers less of the game. Co-authored-by: Cursor <cursoragent@cursor.com>
Phones have no desktop pointer, so joystick aim needs a drawn sprite instead of the old crosshair. Co-authored-by: Cursor <cursoragent@cursor.com>
The arrow stayed on screen after DualShock unplug because padActive never cleared. Co-authored-by: Cursor <cursoragent@cursor.com>
Open IME only on real text fields, lift the chatbox above the keyboard without resizing the canvas, persist server hosts, harden Android FS present/resume, switch iOS fonts to CoreText, and document the physical-device workflow. Co-authored-by: Cursor <cursoragent@cursor.com>
UIRequiresFullScreen is off so Stage Manager / Split View can resize the game window. Co-authored-by: Cursor <cursoragent@cursor.com>
…ve the IME. Co-authored-by: Cursor <cursoragent@cursor.com>
…io focus. Declare all iPad orientations and drop UIRequiresFullScreen so Stage Manager can resize; settle display size after 3s idle. MixWithOthers keeps PiP/other audio alive, and iOS login lift gets extra IME padding. Co-authored-by: Cursor <cursoragent@cursor.com>
Added a new asset link to the README.
Persist preferred NPC/object/item actions for tap, auto-login with saved creds, and DualShock/Xbox mapping on iOS to match Android. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Avoid JAWT Finalizer crashes and noisy ha_Sub2 probe failures by forcing the pure-Java software renderer during Auto Setup and toolkit switches. Co-authored-by: Cursor <cursoragent@cursor.com>
Skip toolkit benchmark on mac but still dismiss the Auto Setup overlay so pending login can proceed without a manual click. Co-authored-by: Cursor <cursoragent@cursor.com>
Ports a Microbot-shaped bot layer into src-microbot (Rs2* facades, combat script, VirtualMouse) plus clarifying 634 renames and a clickable canvas panel for combat/pause toggles. Co-authored-by: Cursor <cursoragent@cursor.com>
Rename Class373/Class324 (and backends) to MouseHandler/BitmapFont*, expose clear draw/input helpers, and organize Void/Microbot/Rs2 files into sibling Gradle source roots while staying in the default package. Co-authored-by: Cursor <cursoragent@cursor.com>
Gives packet Buffer / shaders / caches readable names, resolves the jaclib.memory.Buffer clash in s_Sub3, and replaces Microbot lambdas/BooleanSupplier so device builds can AOT. Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the src-* prefix so roots mirror client domains (fonts, input, menu, void, microbot, rs2) and keep Gradle / decode docs in sync. Co-authored-by: Cursor <cursoragent@cursor.com>
Split the flat 634 tree into leaf Gradle srcDirs (toolkit/gl, shaders/*, scene/*, net/*, …) while keeping the default package; Android/iOS flatten **/*.java into generated/client. Co-authored-by: Cursor <cursoragent@cursor.com>
Apply RENAMES.md mappings for ha/oa/aa/ba/… and *Sub* peers (GraphicsToolkit, OpenGLToolkit, GlToolkitSub*, Shader*, BufferCache*, NodeBase*, …), skipping single-letter types that break literals and locals. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Clarify Node/list/cache/IO/font/menu APIs and related call sites without touching JNI natives or opaque counters. Co-authored-by: Cursor <cursoragent@cursor.com>
Continue evidence-based deob of cache/JS5, prefs, console, friends, and related APIs with comments; keep desktop and iOS compiling. Co-authored-by: Cursor <cursoragent@cursor.com>
Continue camera, applet lifecycle, loading, containers, HUD/UI, and related APIs with comments; add client Architecture.md; keep desktop and iOS compiling. Co-authored-by: Cursor <cursoragent@cursor.com>
Camera orbit, viewport sync, and server-picker looked up stale field/method names via Class.forName; add a deob skill check so renames keep AwtHost in sync. Co-authored-by: Cursor <cursoragent@cursor.com>
CoreText CTM/text-matrix combos rendered upside-down or empty on device; draw through UIKit and keep alpha when blitting. Also set idleTimerDisabled on UIApplication, not UIWindow. Co-authored-by: Cursor <cursoragent@cursor.com>
AwtHost and ServerPrefs look up members by name; silent failures break camera/viewport unless strings move with renames. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the purple console band consuming taps while the keyboard closes, gate IME dismiss to the prompt strip, and deploy via robovmInstall plus a DeviceCtl JSON overflow patch so iPad installs stay fresh. Co-authored-by: Cursor <cursoragent@cursor.com>
Strip/decorate now parse item args so names like Overload (4) replay cleanly, hide the soft keyboard on submit so inventory stays visible, and deobfuscate the item-def island plus an always-on learn-to-deobfuscate rule.
…obs. Map DisplayModeManagerContainer206 to NpcComposition and clarify combatLevel/attack paths; leave the stock level-demote gate commented until combat attack prefs exist. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Android.x.iOS.mp4
Read more: https://github.com/MaatheusGois/void-client-mobile/blob/main/ARCHITECTURE.md