summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
AgeCommit message (Collapse)Author
2026-07-13Scaffold / Appbar composableTom Pratt
Custom composable that switched between compact and medium size app bar depending on a combination of orientation and screen size. (Small app bar when horizontal on small devices, medium app bar otherwise. Medium app bar supports collapse on scroll.
2026-07-13Merge pull request #14630 from Simonx22/android/convert-contenthandler-to-kotlinOatmealDome
Android: Convert ContentHandler to Kotlin and fix warnings
2026-07-11Android: Convert ContentHandler to Kotlin and fix warningsSimonx22
2026-07-09Merge pull request #14716 from tom-pratt/chat-message-coloursDentomologist
Android: Coloured netplay chat messages
2026-07-08Merge pull request #14702 from JosJuice/android-vibration-usageDentomologist
Android: Set USAGE_MEDIA for rumble
2026-07-08Android: Silence deprecation warnings in ControllerInterfaceJosJuice
We have to use the deprecated APIs when running on old devices.
2026-07-07Android: Coloured netplay chat messagesTom Pratt
2026-07-05Merge pull request #14689 from JosJuice/android-internal-resolution-displayDentomologist
VideoCommon: Use XFB for internal resolution stats
2026-07-05Merge pull request #14619 from JosJuice/no-si-change-deviceJosJuice
Core: Remove SerialInterfaceManager::ChangeDevice
2026-07-05Merge pull request #14623 from Simonx22/android/convert-eglhelper-to-kotlinJosJuice
Android: Convert EGLHelper to Kotlin
2026-07-05Merge pull request #14624 from ↵JosJuice
Simonx22/android/convert-filebrowserhelper-to-kotlin Android: Convert FileBrowserHelper to Kotlin
2026-07-05Android: Set USAGE_MEDIA for rumbleJosJuice
This lets rumble work even if the user has turned off the Android setting Sound and vibration > Vibration and haptics > Interactive haptics > Touch feedback. Rumble can still be disabled through Dolphin's controller bindings and through in-game settings (GameCube) or SYSCONF (Wii).
2026-07-05Android: Add missing graphics debug settingsJosJuice
These are available in DolphinQt, so let's make them available in the Android GUI too.
2026-06-28Merge pull request #14647 from tom-pratt/netplayJMC47
Android netplay
2026-06-28Core: Remove SerialInterfaceManager::ChangeDeviceJosJuice
Now SerialInterfaceManager::UpdateDevices reads the configured SI devices directly from Config instead. The main reason why I wanted to do this is so that Android can change SI devices while emulation is running. (Android didn't have the code for calling ChangeDevice.) But when implementing the change, I noticed that NetPlay and Movie were using ChangeDevice as a way of overriding the SI devices configured by the user. Replacing this ended up making the change larger than I first anticipated. For Wii Remotes, there was no equivalent to ChangeDevice, so NetPlay and Movie were using Config::SetCurrent to override the Wii Remote source configured by the user. If we can use the config system to override Wii Remote sources, why not do the same for SI devices? This commit makes NetPlay and Movie set SI devices and Wii Remote sources in the NetPlay and Movie config layers, as that is the conceptually appropriate place to do it. As far as I can tell, the old Movie code for overriding SI devices and Wii Remote sources didn't actually work. This new code does. I didn't investigate exactly why it didn't work, but maybe it's because loading a movie happens before emulation actually starts.
2026-05-25Merge pull request #14631 from ↵Dentomologist
Simonx22/android/convert-directoryinitialization-to-kotlin Android: Convert DirectoryInitialization to Kotlin
2026-05-23Merge pull request #14506 from adamscott/crop-that-screenAdmiral H. Curtiss
Add screen crop feature
2026-05-19Fix NetplayScreen edge to edgeTom Pratt
NetplayScreen was not drawing under the bottom nav bar like other screens. In landscape mode half of the screen scrolls and half is fixed, to make this look natural with edge to edge, provide a fade on the bottom of the scrolling side so things look natural when the screens loads and is resting at 0 scroll offset.
2026-05-19Replace hardcoded save progress stringTom Pratt
2026-05-19Use the dual pane netplay screen layout only if the width is sufficientTom Pratt
To avoid using dual pane layout on very small devices, ensure that the current width available for display is at least medium (600dp). It also has to be landscape, the dual pane mode looks weird on a tablet in portrait mode since there's not that much content.
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-19Add @Keep annotation to Player constructorTom Pratt
Since it's only instantiated from c++.
2026-05-19Fix netplay license headersTom Pratt
2026-05-19Update compose dependenciesTom Pratt
Was using 2025 instead of 2026! Fixed some buggy bottom sheet behaviour. Minor tidying of the chat UI in the bottom sheet
2026-05-19Implement DoAllPlayersHaveGame() checkTom Pratt
2026-05-19Add network mode picker for hostTom Pratt
2026-05-19Add host buffer settings for fair input delay modeTom Pratt
Also rename max buffer to client buffer for better consistency with settings and c++
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-19Show joining info for local and external IP addressesTom Pratt
Doesn't support traversal yet
2026-05-19Add ability to choose game when hostingTom Pratt
Also fix bottom sheets so they survive rotation
2026-05-19Send own messages to chatTom Pratt
A player's own messages don't come back via the server.
2026-05-19Create NetPlayServer and start gameTom Pratt
2026-05-19Hosting UITom 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-19Use existing settings API instead of custom jni callsTom Pratt
2026-05-19Show save transfer progressTom Pratt
When transferring saves from the host. Equivalent of ChunkedProgressDialog in QT.
2026-05-19Dont try to load temporary save states when launching netplayTom Pratt
An orientation change can trigger this code path immediately when a game starts. e.g. dolphin is portrait when launching the game but settings force gameplay to landscape. We want to avoid this and continue to the netplay launch code below. If the user backgrounds dolphin during netplay and then resumes after the process has died it will actually resume from the save state in single player mode, not sure if thats good or bad but fine for now. Netplay doesnt handle rotation very well, seems to go more and more out of sync the more rotations.
2026-05-19Release boot session data during Netplay cleanupTom Pratt
Boot session data is already handled when the game is booted so this is just fallback in case the game launch fails in some weird way. Add missing @Keep annotations to functions called from C++
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-19Settings refactorTom Pratt
Remove the big saveSetup function and set individual settings immediately after being changed in the UI. Group them all under Netplay.Settings
2026-05-19Max bufferTom Pratt
2026-05-19Put players table in an OutlinedBox, makes the UI look more consistent.Tom 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-19Netplay chat UITom Pratt
2026-05-19Implement player listTom Pratt
2026-05-19Reorder netplay classTom Pratt
Put all the boring settings at the bottom to reduce scrolling!
2026-05-19Add mostly empty Netplay screen, equivalent of NetPlayDialog in QT.Tom Pratt
All it can do at this point is quit the current netplay session when backing out of this screen.