summaryrefslogtreecommitdiff
path: root/Source/Android/jni/AndroidCommon
AgeCommit message (Collapse)Author
2026-05-19lint formattingTom Pratt
2026-05-19Pass immutable games list to NetplayUICallbacksTom Pratt
Remove corresponding jni config. Rename Netplay to NetplaySession in jni config to match new kotlin name.
2026-05-19Handle traversal state changes and errorsTom Pratt
Traversal connections show in the joining info UI. Non fatal errors show the retry button. Fatal errors end the netplay session.
2026-05-19Create NetPlayServer and start gameTom Pratt
2026-05-19Game digest progress dialogTom Pratt
We just about get away with using a StateFlow in NetplaySession since the host sends AbortGameDigest when closing their own dialog. Without that it would be harder for the UI to distinguish between subsequent dialogs. If that wasn't the case then NetplaySession might need to expose the individual progress and result updates and have the view model assemble it into the overall GameDigestProgress.
2026-05-19Handle desync messagesTom Pratt
Show them in the chat window and also in a toast during game play.
2026-05-19Make NetplaySession not a singletonTom Pratt
Create a new NetplaySession each time we try to join a netplay game. Hold onto it in NetplayManager so its available to the different activities that need to access it. Close the session when backing out of the netplay UI. Some guardrails in case things go out of sync: creating a session closes the old one if it is still around for some reason, finalizer in NetplaySession to release native resources if not closed explicitly for some reason. Profiling done to ensure all kotlin and native objects are successfully cleared / garbage collected.
2026-05-19Show save transfer progressTom Pratt
When transferring saves from the host. Equivalent of ChunkedProgressDialog in QT.
2026-05-19Implement OnConnectionLost, show a dialog on the main netplay screen forcing ↵Tom Pratt
the user to exit
2026-05-19Implement StopGame callback and use it to finish the emulation activityTom Pratt
2026-05-19Implement more NetPlayUICallbacksTom Pratt
Includes chat, game changes, pad buffer changes and host input authority. Merges them all into the chat window.
2026-05-19Implement player listTom Pratt
2026-05-19Show client connection errors and handle connection resultTom Pratt
If result is a success sent event to launch the next netplay screen. if it fails, clear up the netplay client
2026-05-19Store netplay BootSessionData and use it to run the netplay gameTom Pratt
2026-05-19Pass game list to NetPlayUICallbacks and implement OnMsgChangeGame, ↵Tom Pratt
OnMsgStartGame, FindGameFile
2026-01-24Remove VectorToJStringArraySintendo
2026-01-24Common/FileSearch: Refactor DoFileSearchSintendo
2025-11-11Android: Convert NetworkHelper to KotlinSimonx22
2025-11-08Android: Use the shared HTTP analytics backendSimonx22
We can now route Android analytics through Common::HttpAnalyticsBackend, drop the Volley sender, and keep the JNI layer limited to only transfer metadata since https://bugs.dolphin-emu.org/issues/11772 has been fixed.
2025-05-25Android: Ask system for optimal audio buffer size and sample rateJosJuice
This can reduce audio latency according to https://developer.android.com/ndk/guides/audio/opensl/opensl-prog-notes#perform. Previously we were using the hardcoded values of 48000 Hz and 256 frames per buffer. The sample rate we use with this change is 48000 Hz on all devices I'm aware of, but the buffer size does vary across devices. Terminology note: The old code used the term "sample" to refer to what Android refers to as a "frame". "Frame" is a clearer term to use for this, so I've changed OpenSLESStream's terminology. One frame consists of one sample per channel.
2025-05-07Android: Add emulated Wii SpeakSepalani
2025-03-23Android: Don't use separate thread for MotionAlertDialogJosJuice
This is an Android continuation of bc95c00. We now call InputDetector::Update immediately after receiving an input event from Android instead of periodically calling it in a sleep loop. This improves detection of very short inputs, which are especially likely to occur for volume buttons on phones (or at least on my phone) if you don't intentionally keep them held down.
2025-03-15InputCommon/ControllerEmu: Break out functionality of EmulatedControllerJordan Woyak
to eliminate redundant unused members in Wii Remote extension objects.
2025-03-15Merge pull request #12866 from JosJuice/android-log-types-sortingJosJuice
Android: Replace log type names map with array
2024-10-17Simplify `std::remove` with `std::erase`mitaclaw
`std::erase` is a replacement for the remove-erase idiom. Changes to `OpenModeToAndroid` inadvertently revealed that the prior implementation had UB (potentially deleting the end iterator). This is now fixed.
2024-06-15Android: Replace log type names map with arrayJosJuice
Storing the log type names in a map results in them getting re-sorted by their keys, which doesn't quite give us the sorting we want. In particular, the Achievements category ended up being sorted at R (for RetroAchivements) instead of at A. Every use of the map is just iterating through it, so there's no real reason why it has to be a map anyway.
2024-04-06NativeLibrary: Create displayToastMsg Methodmitaclaw
2023-12-11AndroidCommon: Resolve -Wsign-compare warningLioncash
2023-12-07Android: Expose config changed callbacksJosJuice
2023-09-02Android: Use JNI for setting/getting ISO pathsJosJuice
This gets rid of the last Android-specific code that directly interfaces with INI files.
2023-08-26Merge pull request #11919 from t895/kotlin-controlsJosJuice
Android: Convert "features.input" package to Kotlin
2023-08-25Android: Convert GameFileCache to KotlinCharles Lombardo
2023-08-25Android: Convert GameFile to KotlinCharles Lombardo
2023-08-25Android: Convert NumericSetting to KotlinCharles Lombardo
2023-08-25Android: Convert CoreDevice to KotlinCharles Lombardo
2023-08-25Android: Convert EmulatedController to KotlinCharles Lombardo
2023-08-25Android: Convert ControlReference to KotlinCharles Lombardo
2023-08-25Android: Convert ControlGroup to KotlinCharles Lombardo
2023-08-25Android: Convert Control to KotlinCharles Lombardo
2023-05-28Android: Add Hashmap to IDCacheJoshua de Reeper
2023-03-18Android: Translate C++ "w" to ParcelFileDescriptor "wt"JosJuice
Previously we were translating "w" to "w", which unlike in C++ doesn't truncate. See https://issuetracker.google.com/issues/180526528, and for reference, https://en.cppreference.com/w/cpp/io/c/fopen and https://en.cppreference.com/w/cpp/io/basic_filebuf/open. This issue was brought to my attention by the recently published issue CVE-2023-21036 in the screenshot editing tool on Pixel phones. I'm not aware of any code in Dolphin that actually uses "w" with an existing file on Android (when we ask the user for a location to save to using SAF, a new file is always created), but still, best to fix this.
2023-03-07Android: Add the advanced input mapping dialogJosJuice
It's missing a lot of features from the PC version for now, like buttons for inserting functions and the ability to see what the expression evaluates to. I mostly just wanted to get something in place so you can set up rumble. Co-authored-by: Charles Lombardo <clombardo169@gmail.com>
2023-03-03Android: Add NumericSetting supportJosJuice
2023-03-03Android: Add new input mapping implementationJosJuice
2023-03-03Android: Remove old rumble implementationJosJuice
2023-03-02Merge pull request #11614 from t895/kotlin-cheatsMai
Android: Convert Cheats Activity to Kotlin
2023-03-01Android: Convert RiivolutionPatches to KotlinCharles Lombardo
2023-03-01Android: Convert GraphicsMod to KotlinCharles Lombardo
2023-03-01Android: Convert GraphicsModGroup to KotlinCharles Lombardo
2023-03-01Android: Convert PatchCheat to KotlinCharles Lombardo