Commit Graph

1882 Commits

Author SHA1 Message Date
Tom Pratt
dfa3384281 Netplay chat UI 2026-05-19 12:02:55 +02:00
Tom Pratt
d9e2725e85 Implement player list 2026-05-19 12:02:55 +02:00
Tom Pratt
af2fda5649 Reorder netplay class
Put all the boring settings at the bottom to reduce scrolling!
2026-05-19 12:02:55 +02:00
Tom Pratt
b72f3c1afc Add mostly empty Netplay screen, equivalent of NetPlayDialog in QT.
All it can do at this point is quit the current netplay session when backing out of this screen.
2026-05-19 12:02:55 +02:00
Tom Pratt
5527e8138e Move NetplaySetupScreen to its own file 2026-05-19 12:02:55 +02:00
Tom Pratt
f52ca02ca2 Show client connection errors and handle connection result
If result is a success sent event to launch the next netplay screen. if it fails, clear up the netplay client
2026-05-19 12:02:54 +02:00
Tom Pratt
3ed9174208 Store netplay BootSessionData and use it to run the netplay game 2026-05-19 12:02:54 +02:00
Tom Pratt
766374434c Pass game list to NetPlayUICallbacks and implement OnMsgChangeGame, OnMsgStartGame, FindGameFile 2026-05-19 12:02:54 +02:00
Tom Pratt
1464fdfc28 Add NetPlayClient join and stub NetPlayUICallbacks 2026-05-19 12:02:54 +02:00
Tom Pratt
a1983e5fa2 Add Netplay settings JNI layer and wire up NetplaySetupViewModel 2026-05-19 12:02:54 +02:00
Tom Pratt
f10022f2dc Netplay setup UI
Only for connecting, no hosting yet.
2026-05-19 12:02:53 +02:00
Tom Pratt
c716c32ce8 Add compose dependencies for Android and empty NetplaySetupActivity
Derive compose colour theming from the existing XML styles already set at the activity level.
2026-05-19 12:02:53 +02:00
JosJuice
4470534dc5 Android: Move alert message log from Kotlin to C++
For some reason, NativeLibrary.kt calling Log for the alert message text
makes Dolphin die with a JNI error. Supposedly the jstring passed to the
logging function is invalid. I don't understand why, because the dialog
that we show right afterwards is able to read the string just fine. The
error happens even if I pass the string directly to Log without
prepending any extra text.

There's no real downside to having the logging in C++ instead of Kotlin,
so let's move it to C++ to avoid the JNI error.
2026-05-08 10:56:51 +02:00
Simonx22
7ef2906351 Android: Convert DirectoryInitialization to Kotlin 2026-04-30 17:19:07 -04:00
Simonx22
a7e98c776d Android: Convert TvUtil to Kotlin 2026-04-30 16:23:32 -04:00
Simonx22
ca3d896900 Android: Convert FileBrowserHelper to Kotlin 2026-04-26 12:48:46 -04:00
Simonx22
1800f5cf51 Android: Convert EGLHelper to Kotlin 2026-04-26 12:40:08 -04:00
OatmealDome
af15769d57
Merge pull request #14569 from Simonx22/android/convert-gamefilecachemanager-to-kotlin
Android: Convert GameFileCacheManager to Kotlin
2026-04-26 12:03:57 -04:00
Dentomologist
a94854309b
Merge pull request #14608 from JosJuice/gcadapter-auto-start
GCAdapter: Automatically start and stop thread
2026-04-24 19:51:51 -07:00
JosJuice
cc01a60347 GCAdapter: Automatically start and stop thread
This keeps the logic encapsulated inside GCAdapter.cpp so callers don't
have to think about it.
2026-04-18 19:40:25 +02:00
Adam Scott
a5059cbca8
Add screen crop feature 2026-04-18 13:08:41 -04:00
JosJuice
4aaecbb148 Android: Add page table fastmem to Debug settings 2026-04-18 08:42:34 +02:00
OatmealDome
0cdb855434
Merge pull request #14567 from Simonx22/android/convert-wiimoteadapter-to-kotlin
Android: Convert WiimoteAdapter to Kotlin
2026-04-16 20:25:19 -04:00
Simonx22
301ca5fcb8 Android: Convert GameFileCacheManager to Kotlin 2026-04-16 16:46:24 -04:00
Simonx22
e982aeacad Android: Convert GCAdapter to Kotlin 2026-04-06 19:56:27 -04:00
Simonx22
662b1d74a8 Android: Convert WiimoteAdapter to Kotlin 2026-04-06 18:21:07 -04:00
Jordan Woyak
d3275b9ffe
Merge pull request #14490 from Simonx22/android/convert-gamepropertiesdialog-to-kotlin
Android: Convert GamePropertiesDialog to Kotlin
2026-04-05 18:41:12 -05:00
Jordan Woyak
3bc6815c8b
Merge pull request #14503 from Simonx22/android/convert-syncprogramsjobservice-to-kotlin
Android: Convert SyncProgramsJobService to Kotlin
2026-04-05 18:37:57 -05:00
Jordan Woyak
26583fd026 HW/GBACore: Remove the GBA "Threads" setting. Make GBAs always run on dedicated threads in preparation for future improvements. 2026-04-02 18:11:29 -05:00
JosJuice
5167adc8df Android: Add GBA settings
The following settings were excluded:

* Port 1-4 ROM: We're only supporting Game Boy Player for now
* Save in Same Directory as the ROM: Implementation nightmare due to SAF
2026-03-31 23:40:54 -05:00
Simonx22
dbeca0d134 Android: Refactor SyncProgramsJobService
Changes:
- Convert SyncProgramsJobService from Java to Kotlin.
- Replace AsyncTask/executor lifecycle handling with coroutine-based job execution and cancellation.
- Stop using restricted androidx.tvprovider builder APIs.
2026-03-24 23:05:00 -04:00
Simonx22
9085d649dc Android: Add Keep annotation to JNI-exposed PermissionsHandler methods
This fixes an oversight from https://github.com/dolphin-emu/dolphin/pull/14488 where I forgot to add `@Keep` to JNI-exposed methods. R8 tried to optimize it and thought those methods were unused.
2026-03-24 18:42:19 -04:00
OatmealDome
6608bca694
Merge pull request #14476 from Simonx22/android/version-catalog-latest-deps
Android: Use version catalog and update dependencies
2026-03-22 12:13:10 -04:00
OatmealDome
9ba08f70bc
Merge pull request #14489 from Simonx22/android/convert-applinkhelper-to-kotlin
Android: Convert AppLinkHelper to Kotlin
2026-03-22 12:12:50 -04:00
OatmealDome
125bc173bb
Merge pull request #14491 from Simonx22/android/convert-syncchanneljobservice-to-kotlin
Android: Convert SyncChannelJobService to Kotlin
2026-03-22 12:12:41 -04:00
OatmealDome
4a813a019b
Merge pull request #14495 from Simonx22/android/convert-startuphandler-to-kotlin
Android: Convert StartupHandler to Kotlin
2026-03-22 12:12:30 -04:00
OatmealDome
0e92a14703
Merge pull request #14488 from Simonx22/android/convert-permissionshandler-to-kotlin
Android: Convert PermissionsHandler to Kotlin
2026-03-21 12:14:53 -04:00
Simonx22
71f40469be Android: Convert SyncChannelJobService to Kotlin 2026-03-21 11:29:09 -04:00
Simonx22
936a828cb7 Android: Convert AppLinkHelper to Kotlin 2026-03-21 11:25:42 -04:00
Simonx22
e878174235 Android: Use version catalog and update dependencies
Migrate plugin and dependency versions to a Gradle version catalog and update dependencies to their latest available versions.
2026-03-21 10:50:34 -04:00
Simonx22
8ced69e95d Android: Convert GamePropertiesDialog to Kotlin 2026-03-20 15:15:17 -04:00
Simonx22
b5b5b6fb7d Android: Convert StartupHandler to Kotlin 2026-03-20 13:14:06 -04:00
Simonx22
385ac49109 Android: Convert PermissionsHandler to Kotlin 2026-03-20 13:01:54 -04:00
Simonx22
b4933d3799 Android: Convert InsetsHelper to Kotlin 2026-03-20 12:59:27 -04:00
Simonx22
08f598f439 Android: Add ProGuard keep rules for classes and methods referenced in IDCache
Co-authored-by: OatmealDome <julian@oatmealdome.me>
2026-03-16 11:58:08 -04:00
Simonx22
fd20322f5f Android: Remove version guards for API levels below 23 (Marshmallow) 2026-03-15 14:25:04 -04:00
Simonx22
57a8a78d06 Android: Raise minSdk to 24 (Android 7.0)
Reasons:
- Only 0.000341% of all Android users were on API 21-23 in the last 365 days.
- These devices are old and likely do not run Dolphin well.
- Android 5.x and 6.0 have been without security updates for about 8 years.
- Staying on API 21–23 blocks AndroidX updates, including Lifecycle.
2026-03-12 16:22:26 -04:00
JMC47
ff84a4b07a
Merge pull request #14426 from Simonx22/android/convert-afterdirectoryinitializationrunner-to-kotlin
Android: Convert AfterDirectoryInitializationRunner to Kotlin
2026-03-12 15:25:15 -04:00
JMC47
6257823caf
Merge pull request #14424 from Simonx22/android/wii-update-callback-kotlin
Android: Convert WiiUpdateCallback to Kotlin
2026-03-12 15:25:05 -04:00
JMC47
94c1891187
Merge pull request #14423 from Simonx22/android/convert-alertdialogitemsbuilder-to-kotlin
Android: Convert AlertDialogItemsBuilder to Kotlin
2026-03-12 15:24:49 -04:00
JMC47
e0ab156afd
Merge pull request #14422 from Simonx22/android/convert-tvsettingsviewholder-to-kotlin
Android: Convert TvSettingsViewHolder to Kotlin
2026-03-12 15:24:38 -04:00
Simonx22
79f0c814e4 Android: Convert AfterDirectoryInitializationRunner to Kotlin 2026-02-28 10:44:05 -05:00
Simonx22
2660412b29 Android: Convert WiiUpdateCallback to Kotlin 2026-02-27 21:30:46 -05:00
Simonx22
a7bb03b6f0 Android: Convert AlertDialogItemsBuilder to Kotlin 2026-02-27 15:06:12 -05:00
Simonx22
46c410e30b Android: Convert TvSettingsViewHolder to Kotlin 2026-02-27 14:41:25 -05:00
Simonx22
58f85aa65c Android: Convert USBPermService to Kotlin 2026-02-27 14:11:48 -05:00
JosJuice
99d82829c8 Android: Fix defaults for RetroAchievements settings
Default values for settings need to be the same in Kotlin and C++,
otherwise settings that haven't been changed by the user will be shown
as having one value in the Android GUI but treated as having a different
value in the core.
2026-02-23 19:24:58 +01:00
JosJuice
051133787e Android: Add Triforce Baseboard
This lets users select Triforce Baseboard for SI and SP1. Limitations:

* The test, service and coin buttons can be bound to gamepads and other
  physical inputs, but aren't available in the touch input overlay.
* The IP redirections are exposed to the user as a raw string rather than
  a table like in DolphinQt.
2026-02-15 23:13:18 -06:00
JMC47
e387fa3732
Merge pull request #14385 from dreamsyntax/cpu-clock-max
Qt/Android: CPU Clock Override max to 500%
2026-02-15 03:38:23 -05:00
dreamsyntax
e1e1485582 Qt/Android: CPU Clock Override max to 500% 2026-02-12 18:39:05 -07:00
JosJuice
bd92388d2f Android: Rework input device hotplug
Previously, when an input device was connected or disconnected, we would
recreate all devices. This commit makes it so we only touch the relevant
device instead. This matters because recreating a device causes us to
drop all held buttons for that device. Due to Android only delivering
inputs as events, we're unable to poll for currently held buttons when
recreating a device.

This recently became a problem for users of Ayn devices due to a
firmware update. Every now and then, something about the display
viewports changes, triggering an update to an input device that I assume
is a touch input device. This input device isn't something users
normally map in Dolphin's controller settings, but it changing was
causing Dolphin to drop all held buttons for the device's built-in
gamepad as well as any other connected gamepads.
2026-02-08 10:38:43 +01:00
Jordan Woyak
dd2b94cd4a
Merge pull request #13594 from jordan-woyak/state-cleanups
State: Simplify interthread communication and general cleanups.
2026-02-03 16:50:52 -06:00
Sam Belliveau
51c8f18b73 feat: Add an option to preserve audio pitch when emulation speed changes, integrating it into core configuration and both Qt and Android UIs. 2026-01-27 18:48:22 -05:00
Jordan Woyak
2322437f96 State: Simplify interthread communication and cleanups. Save/Load calls are now always non-blocking for the caller, but appropriately block the CPU thread as needed. 2026-01-19 21:56:59 -06:00
JosJuice
0ba32f7add Android: Detect when native code should flush unsaved data 2026-01-19 21:56:09 -06:00
JosJuice
4c7cb2622f
Merge pull request #14246 from LeddaZ/android-gitignore
Android: Add build output folders to gitignore
2026-01-14 18:54:16 +01:00
JosJuice
01b4f8bcf7
Merge pull request #14245 from LeddaZ/android-materialyou-fix
Android: Switch to Theme.Material3.DynamicColors
2026-01-14 18:54:05 +01:00
Leonardo Ledda
87345d5eda
Android: Add build output folders to gitignore
Signed-off-by: Leonardo Ledda <leonardoledda@gmail.com>
2026-01-01 14:23:40 +01:00
Leonardo Ledda
593c9f3836
Android: Switch to Theme.Material3.DynamicColors
* This fixes some UI elements (3-dot menu background, status bar when scrolling down in settings) not following Material You colors.
* It doesn't cause any issues on Android versions without dynamic colors (tested on Android 9, 11, 16)

Signed-off-by: Leonardo Ledda <leonardoledda@gmail.com>
2026-01-01 14:11:37 +01:00
Leonardo Ledda
af0d03b399
Android: Use compilerOptions block to specify JVM version
* Fixes deprecation warning

Signed-off-by: Leonardo Ledda <leonardoledda@gmail.com>
2026-01-01 13:43:38 +01:00
JMC47
8aabaf8b63
Merge pull request #14155 from Simonx22/android/remove-completable-future
Android: Remove CompletableFuture
2025-12-22 13:34:58 -05:00
JMC47
289814d0a8
Merge pull request #14144 from Simonx22/android/log-kotlin
Android: Convert Log to Kotlin
2025-12-22 13:32:08 -05:00
JMC47
f565c5450f
Merge pull request #14141 from Simonx22/android/controllerinterface-handlerthread
Android: Use Android's HandlerThread in ControllerInterface instead of our own implementation
2025-12-22 13:30:47 -05:00
JosJuice
fa2a9e72f9
Merge pull request #14159 from JosJuice/android-retroachievements-login-gone
Android: Tweak dialog_login.xml layout
2025-11-25 20:52:29 +01:00
JosJuice
79d74a3df1 Android: Add LeaderboardTrackerEnabled and ChallengeIndicatorsEnabled
This is an Android port of 7ed61c50a1. It looks like we don't have
descriptions for any of the RetroAchievements settings in the Android
GUI, so I haven't added descriptions for these two new settings either.
2025-11-23 11:17:16 +01:00
JosJuice
604e7fe833 Android: Use same margin above login text as below
This makes the login dialog look more balanced when "Logging In" or
"Login Failed" is visible.
2025-11-23 11:05:02 +01:00
JosJuice
738dcf86a6 Android: Remove unnecessary gravity in dialog_login.xml
Android Studio was complaining about these because their directions
didn't match the text alignment, but in this layout they have no effect
anyway.
2025-11-23 11:05:02 +01:00
JosJuice
9ec9b7d6f7 Android: Replace dialog_login.xml's invisible with gone
LoginDialog sets these to gone when a login starts or fails. Whether we
use gone or invisible needs to be consistent between LoginDialog and the
XML file, otherwise we'll blank space that shows up or disappears when
login starts or fails.
2025-11-23 11:03:09 +01:00
Simonx22
e78ece126e Android: Format MainPresenter 2025-11-22 11:11:50 -05:00
Simonx22
01d2d0eea1 Android: Format ControllerInterface 2025-11-22 11:06:15 -05:00
JosJuice
f4f7424a9f
Merge pull request #13583 from LillyJadeKatrin/retroachievements-android
Android Support for RetroAchievements
2025-11-22 17:00:03 +01:00
Simonx22
dd5f831262 Android: Remove CompletableFuture
We only use this class in one in one single function since its introduction with 12aa1071cb in 2021. If we do need it elsewhere we can always bring it back.
2025-11-21 21:47:09 -05:00
Simonx22
9f6400332f Android: Convert Log to Kotlin 2025-11-19 16:53:10 -05:00
Jordan Woyak
2d7ebe46e3
Merge pull request #14111 from Simonx22/android/native-library-kotlin
Android: Convert NativeLibrary to Kotlin
2025-11-19 15:27:41 -06:00
LillyJadeKatrin
ddced1a070 RetroAchievements - Android login callback
Modify the RetroAchievements login code in Android to pass in a callback, pop a message if login fails, close the login box if it succeeds.
2025-11-18 20:40:15 -05:00
Simonx22
00959738fe Android: Use Android's HandlerThread in ControllerInterface instead of our own implementation 2025-11-18 16:10:57 -05:00
Jordan Woyak
bd07d9dfd3
Merge pull request #14136 from Simonx22/android/compress-callback-kotlin
Android: Convert CompressCallback to Kotlin
2025-11-18 14:15:12 -06:00
Simonx22
d83c7c1a70 Android: Update Kotlin serialization plugin
I forgot to update this, which broke installing GPU drivers

Co-Authored-By: OatmealDome <OatmealDome@users.noreply.github.com>
2025-11-17 23:56:39 -05:00
Simonx22
0f7ee5b40f Android: Convert CompressCallback to Kotlin 2025-11-17 22:44:50 -05:00
Jordan Woyak
27f5c91624
Merge pull request #14131 from Simonx22/android/stereo-float-settings
Android: Convert stereo settings to floats
2025-11-17 15:45:24 -06:00
Simonx22
123b242e9b Android: Convert BooleanSupplier to Kotlin 2025-11-17 15:31:30 -05:00
Simonx22
a3e7a47ded Android: Convert stereo settings to floats to match C++ definitions
These settings were recently changed with 113c86f1b4 to be floats instead of ints.

This commit also changes the Android UI to use the direct convergence value instead of the percentage to match the Qt UI.
2025-11-17 15:01:00 -05:00
JosJuice
0d22dc0392
Merge pull request #14106 from Simonx22/android/dependency-updates-11102544758
Android: Update dependencies
2025-11-17 20:29:21 +01:00
JosJuice
f966c55e0c
Merge pull request #14097 from Simonx22/android/network-helper-kotlin
Android: Convert NetworkHelper to Kotlin
2025-11-17 20:28:20 +01:00
LillyJadeKatrin
1e0f6a557e Android Achievements - Hardcore disables
Disables state loading and emulation speeds below 100% when RetroAchievements hardcore mode is enabled.
2025-11-16 22:05:54 -05:00
LillyJadeKatrin
f4f26a26d2 Add login to achievement settings 2025-11-16 22:05:54 -05:00
LillyJadeKatrin
b662cd93ce Add Achievements submenu to Android settings 2025-11-16 22:05:53 -05:00
JosJuice
56532c850f
Merge pull request #14023 from JosJuice/android-overlay-ok
Android: Treat EmulationActivity dialog dismiss the same as OK
2025-11-16 18:36:08 +01:00
Simonx22
3fcc0427c9 Android: Convert NativeLibrary to Kotlin 2025-11-16 10:26:09 -05:00
JosJuice
e0f52e5799
Merge pull request #14104 from Simonx22/android/remove-extract-native-libs
Android: Remove deprecated extractNativeLibs manifest flag
2025-11-16 12:10:16 +01:00