summaryrefslogtreecommitdiff
path: root/Source/Android
AgeCommit message (Collapse)Author
2026-04-05Merge pull request #14503 from ↵Jordan Woyak
Simonx22/android/convert-syncprogramsjobservice-to-kotlin Android: Convert SyncProgramsJobService to Kotlin
2026-04-04Improve NAND import progress dialogTillmann Karras
Now with cancel button and an actual progress bar. For simplicity, we do two passes on the progress bar, one for loading the NAND into memory and one for extracting it. The user directory is likely on an SSD, making the extraction pass invisibly fast.
2026-04-02HW/GBACore: Remove the GBA "Threads" setting. Make GBAs always run on ↵Jordan Woyak
dedicated threads in preparation for future improvements.
2026-03-31Android: Add GBA settingsJosJuice
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-24Android: Refactor SyncProgramsJobServiceSimonx22
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-24Android: Add Keep annotation to JNI-exposed PermissionsHandler methodsSimonx22
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-24Android: Pin R8 9.1.34 to fix release minify crashSimonx22
Override AGP-bundled R8 in settings.gradle.kts: - classpath("com.android.tools:r8:9.1.34") from r8-releases/raw This resolves :app:minifyReleaseWithR8 failing with: java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 0 Bug report: https://issuetracker.google.com/issues/495458806 Co-Authored-By: OatmealDome <julian@oatmealdome.me>
2026-03-22Merge pull request #14476 from Simonx22/android/version-catalog-latest-depsOatmealDome
Android: Use version catalog and update dependencies
2026-03-22Merge pull request #14489 from Simonx22/android/convert-applinkhelper-to-kotlinOatmealDome
Android: Convert AppLinkHelper to Kotlin
2026-03-22Merge pull request #14491 from ↵OatmealDome
Simonx22/android/convert-syncchanneljobservice-to-kotlin Android: Convert SyncChannelJobService to Kotlin
2026-03-22Merge pull request #14495 from Simonx22/android/convert-startuphandler-to-kotlinOatmealDome
Android: Convert StartupHandler to Kotlin
2026-03-21Merge pull request #14488 from ↵OatmealDome
Simonx22/android/convert-permissionshandler-to-kotlin Android: Convert PermissionsHandler to Kotlin
2026-03-21Android: Convert SyncChannelJobService to KotlinSimonx22
2026-03-21Android: Convert AppLinkHelper to KotlinSimonx22
2026-03-21Android: Use version catalog and update dependenciesSimonx22
Migrate plugin and dependency versions to a Gradle version catalog and update dependencies to their latest available versions.
2026-03-20Android: Convert GamePropertiesDialog to KotlinSimonx22
2026-03-20Android: Convert StartupHandler to KotlinSimonx22
2026-03-20Android: Convert PermissionsHandler to KotlinSimonx22
2026-03-20Android: Convert InsetsHelper to KotlinSimonx22
2026-03-16Android: Add ProGuard keep rules for classes and methods referenced in IDCacheSimonx22
Co-authored-by: OatmealDome <julian@oatmealdome.me>
2026-03-15Android: Remove version guards for API levels below 23 (Marshmallow)Simonx22
2026-03-12Android: Raise minSdk to 24 (Android 7.0)Simonx22
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-12Merge pull request #14427 from Simonx22/qt/cheats-gecko-download-error-messageJMC47
DolphinQt: Improve Gecko code download failure message
2026-03-12Merge pull request #14426 from ↵JMC47
Simonx22/android/convert-afterdirectoryinitializationrunner-to-kotlin Android: Convert AfterDirectoryInitializationRunner to Kotlin
2026-03-12Merge pull request #14424 from Simonx22/android/wii-update-callback-kotlinJMC47
Android: Convert WiiUpdateCallback to Kotlin
2026-03-12Merge pull request #14423 from ↵JMC47
Simonx22/android/convert-alertdialogitemsbuilder-to-kotlin Android: Convert AlertDialogItemsBuilder to Kotlin
2026-03-12Merge pull request #14422 from ↵JMC47
Simonx22/android/convert-tvsettingsviewholder-to-kotlin Android: Convert TvSettingsViewHolder to Kotlin
2026-03-03DolphinQt: Improve Gecko code download failure messageSimonx22
2026-02-28Android: Convert AfterDirectoryInitializationRunner to KotlinSimonx22
2026-02-27Android: Convert WiiUpdateCallback to KotlinSimonx22
2026-02-27Android: Convert AlertDialogItemsBuilder to KotlinSimonx22
2026-02-27Android: Convert TvSettingsViewHolder to KotlinSimonx22
2026-02-27Android: Convert USBPermService to KotlinSimonx22
2026-02-23Android: Fix defaults for RetroAchievements settingsJosJuice
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-15Android: Add Triforce BaseboardJosJuice
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-15Merge pull request #14385 from dreamsyntax/cpu-clock-maxJMC47
Qt/Android: CPU Clock Override max to 500%
2026-02-14Merge pull request #12917 from JosJuice/transfer-sysconf-controlDentomologist
Explicitly transfer control of SYSCONF to emulated system
2026-02-14Explicitly transfer control of SYSCONF to emulated systemJosJuice
The functions SaveToSYSCONF and LoadFromSYSCONF contain checks for whether emulation is running. The intent of this is that when we're emulating a Wii, the emulated system may write to SYSCONF whenever it likes and does not expect anything else to write to SYSCONF, so the host code shouldn't access SYSCONF while emulation is ongoing. However, Core::IsRunning is an imperfect proxy for whether we've handed over control of SYSCONF to the emulated system yet, as the actual handover happens at a slightly different point in time than when the emulation state is changed. This usually isn't a problem, but in theory it could be a determinism problem if a setting is changed right as emulation is starting, or it could cause the emulated software to briefly misbehave if a setting is changed right as emulation is stopping. Things got worse in 72cf2bdb87f09deff22e1085de3290126aa4ad05 when I replaced the Core::IsRunning calls with !Core::IsUninitialized. With IsRunning, there was be a period of time where SYSCONF should have been protected but wasn't. With !IsUninitialized, there was a period of time where SYSCONF shouldn't have been protected but was, and crucially, this period of time included the moments where we do setup and teardown of the emulated NAND, which broke transferring SYSCONF settings between the host and the guest. 72cf2bdb87f09deff22e1085de3290126aa4ad05 was reverted because of this. This commit adds a flag that we explicitly flip when control is handed over to or from the emulated system. This protects the SYSCONF file for exactly as long as is needed.
2026-02-12Qt/Android: CPU Clock Override max to 500%dreamsyntax
2026-02-08Android: Rework input device hotplugJosJuice
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-03Merge pull request #13594 from jordan-woyak/state-cleanupsJordan Woyak
State: Simplify interthread communication and general cleanups.
2026-01-27feat: Add an option to preserve audio pitch when emulation speed changes, ↵Sam Belliveau
integrating it into core configuration and both Qt and Android UIs.
2026-01-24Remove VectorToJStringArraySintendo
2026-01-24Common/FileSearch: Refactor DoFileSearchSintendo
2026-01-19State: Simplify interthread communication and cleanups. Save/Load calls are ↵Jordan Woyak
now always non-blocking for the caller, but appropriately block the CPU thread as needed.
2026-01-19Android: Detect when native code should flush unsaved dataJosJuice
2026-01-17Merge pull request #14268 from JoshuaVandaele/std-tounderlyingiwubcode
c++23: Replace Common::ToUnderlying with std::to_underlying
2026-01-14Merge pull request #14246 from LeddaZ/android-gitignoreJosJuice
Android: Add build output folders to gitignore
2026-01-14Merge pull request #14245 from LeddaZ/android-materialyou-fixJosJuice
Android: Switch to Theme.Material3.DynamicColors
2026-01-09c++23: Replace Common::ToUnderlying with std::to_underlyingJoshua Vandaële
Requires at least GCC 11, Clang 13, MSVC 19.30 (VS2022 17.0), or AppleClang 13.1.6 (XCode 13.3).