Commit Graph
448 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Fable 5.1 5b677d93a1 Android: Don't send the launch parameter to the native side twice
On a cold start, onCreate passed the intent's shortcut parameter to
NativeApp.init and then also posted it as a "shortcutParam" message, which
is only meant for when the native side is already up. For a game shortcut
the second boot request was rejected with an error. For the Args extra,
the raw command line got booted as if it was a game path, so something
like --loglevel=4 applied fine and then popped up a load failure.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 00:09:09 +02:00
Henrik RydgårdandClaude Fable 5.1 7641514084 Android: Join the Vulkan render thread when the surface is destroyed
The surface may not be used after surfaceDestroyed returns. We relied on
onPause having joined the thread first, which is the usual order but not a
guaranteed one. When it didn't hold, the thread kept spinning on a lost
surface, and the replacement surface was refused as "Already running".

Also forget a surface deferred while paused if it gets destroyed before
the resume that would have used it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 00:09:09 +02:00
Henrik Rydgård 04a6166c90 Android: Remove some unused code 2026-08-31 11:02:32 +02:00
Henrik Rydgård 67ddf899ba Plumb through the PC value for syscalls, so we can get better diagnostics for unresolved ones. 2026-08-15 19:14:13 +02:00
Henrik Rydgård 9315c0953a GamepadEmu: bounds-check touch pointer IDs before use
TouchInput::id was used directly to index the global primaryButton[]
array (MultiTouchButton::Touch) and to shift pointer bitmasks
(PSPDpad/PSPStick/PSPCustomStick/GestureGamepad::Touch), guarded only
by a debug-only assert in one of the five call sites - a no-op in
release builds. input.id isn't always a small sequential slot in
[0, TOUCH_MAX_POINTERS): SDL assigns SDL_FingerID values directly,
Android pointer IDs can go up to 31, and UWP's TouchMapper allocates
one more slot (11) than TOUCH_MAX_POINTERS (10) and can also return -1
when it runs out of slots - all reachable through ordinary multi-touch
use, no malicious input required.

Also apply bounds check to the PER_GAME gesture config ints
(iDoubleTapGesture/iSwipeUp/Down/Left/Right) before indexing
GestureKey::keyList[] with them.

Additionally, minor cleanup on Android and moves the TouchMapper helper
out from UWP to InputState.h.
2026-08-12 09:47:13 +02:00
Henrik Rydgård 9c8a4035ef Buildfix, restore lost check 2026-08-07 11:27:45 +02:00
Henrik Rydgård cac10caed7 Minor cleanup 2026-08-07 10:54:02 +02:00
Henrik Rydgård 30d04b72a6 Refactor sd card detection 2026-08-07 10:54:02 +02:00
Henrik Rydgård eabec15add Alert dialog code cleanup 2026-08-07 10:54:02 +02:00
Henrik Rydgård f62a10b61a Package and library dir cleanup 2026-08-07 10:54:02 +02:00
Henrik Rydgård be922eca62 Make OpenGL render thread shutdown more robust. 2026-08-04 16:44:55 +02:00
Henrik Rydgård edce05211e Add more logging in onPause 2026-07-30 18:50:32 +02:00
Henrik Rydgård 6bdaf7caee Fix null pointer access in InfraredHelper.java 2026-07-29 14:40:53 +02:00
Henrik Rydgård 86c8e9ae68 Minor code cleanup 2026-07-24 15:31:41 +02:00
Henrik Rydgård 6d98293be9 Hide orientation controls on large Android 17 devices, since they won't work. 2026-06-15 10:37:58 +02:00
Henrik Rydgård 697179c8cd Add some plumbing for the Android 17 local network access permission 2026-06-15 09:45:09 +02:00
Henrik Rydgård b079c5d6ce Minor optimizations in ContentUri.java 2026-06-15 09:44:41 +02:00
Henrik Rydgård 8fe3dcdb83 Android: Allow clipdata as input for the file browser.
Fixes #18874
2026-06-06 14:12:57 +02:00
Henrik Rydgård 01d65ada40 Merge pull request #21760 from misantronic/feature/achievementshost-cli-override
Android: add achievements host override receiver
2026-06-01 11:05:22 +02:00
david.schkalee d477afa9b2 Android: add achievements host override receiver 2026-06-01 01:44:04 +02:00
Henrik Rydgård e8e357e360 Implement the "Mix audio with other apps" setting on Android. 2026-05-31 19:08:45 +02:00
Henrik Rydgård b2faec0533 Windows: Restore the GDI-based text drawer, use it if RenderDoc is attached
The D2D-based text renderer requires a D3D11 context, which confuses
RenderDoc (it doesn't permit multiple 3D APIs in the same process).

So, let's restore the old GDI renderer and use it if RenderDoc is attached.

See #21638
2026-05-20 10:25:29 +02:00
Henrik Rydgård 6eb0b3fd51 Fix an issue with Exit icon not showing up in MessagePopup 2026-05-13 11:04:03 +02:00
Henrik Rydgård 3f0fa315b2 Refactor the Java file picker code 2026-05-11 11:45:04 +02:00
Henrik Rydgård e23d866a95 Plumb through an error code for missing activity. Will later be used to improve the UI. 2026-05-11 10:52:36 +02:00
Henrik Rydgård 28f2a1657a Android: Use a proxy activity for the browse for file/folder activities
Might help #21582
2026-04-28 17:37:40 +02:00
Henrik Rydgård 02a624075a Android: Make the "Auto" rotation mode override user rotation lock (SENSOR mode) 2026-03-31 10:43:27 -06:00
Henrik Rydgård fead647304 Android: Improve insets behavior on older devices without camera cutouts 2026-03-14 22:53:17 +01:00
Henrik Rydgård 60eb1e5b8c Support inset on older devices. Although, in the case of no camera cutout, the insets are a little large because the nav bar becomes the minimum for symmetry.. 2026-03-14 22:24:54 +01:00
Henrik Rydgård 75453632f9 Handle inset adjustements on the C++ side, handle them better in the UI. 2026-03-14 18:13:37 +01:00
Henrik Rydgård d596e43b4b Android: Scale down selected background images when too large. Fix activity issue. 2026-03-08 14:53:20 +01:00
Henrik Rydgård 3352ba44bb Remove misguided hack to signal that we handled key repeats.
Fixes #21336
2026-03-05 01:55:41 +01:00
Henrik Rydgård fd22c4235d Android: ImagePickers don't play well with singleInstance activities, so apply a workaround. 2026-03-05 00:30:24 +01:00
Henrik Rydgård 8045b3cf79 Improve the look of the status bar on modern Android (no shadow). 2026-03-04 12:44:12 +01:00
Henrik Rydgård 17f6583a78 Fix the problem with black screen in split screen mode
Fixes #21333, does some cleanup.
2026-03-04 12:34:25 +01:00
Henrik Rydgård 657b3282ab Android keyboard: After processing a char event, fall through and also generate a keydown.
Fixes #21309
2026-02-26 23:30:43 +01:00
Henrik Rydgård 853810b59f Some java modernization, cleanup 2026-02-25 00:52:25 +01:00
Henrik Rydgård 31e032353a Android: Make the native text input popup much nicer to use
Thanks Gemini.
2026-02-24 10:47:12 +01:00
Henrik Rydgård 505a72bb3f Work around java exception seen in reporting. Buildfix. 2026-02-18 01:34:56 +01:00
Henrik Rydgård e3e6148459 Add a way to query the installer name on Android. 2026-02-14 10:48:40 +01:00
Henrik Rydgård fb88dbbbbf Android: Handle pointer event cancellation 2026-02-06 12:47:41 +01:00
Henrik Rydgård 841e4c8564 Add various checks trying to avoid various crashes found in Google Play crash reports. 2026-02-05 11:12:53 +01:00
Henrik Rydgård d4e6295d31 Android: Better filtering of device connected notifications 2026-01-31 13:11:06 +01:00
Henrik Rydgård 25d216a20a Release all keys and axes on game controller disconnect on Android 2026-01-26 11:08:55 +01:00
Henrik Rydgård dccca3c441 Android: Track device disconnection 2026-01-25 23:02:12 +01:00
Henrik Rydgård e3aec526ec Fix some lints 2026-01-25 23:02:12 +01:00
Henrik Rydgård e7aba8f153 Hook up an InputDeviceListener, and just have it log 2026-01-25 23:02:12 +01:00
Henrik Rydgård 53c5f1875c Minor cleanup of Android vulkan code 2026-01-24 10:54:46 +01:00
Henrik Rydgård 3c4adc3e66 Fix a number of Android Studio lint warnings, a bad jni return type and an memory leak 2026-01-21 18:43:47 +01:00
Henrik Rydgård c13060363f More minor Android cleanup/fixes 2026-01-19 17:00:15 +01:00