Commit graph

1443 commits

Author SHA1 Message Date
Pierre Bourdon
970ddf0ea0
Merge pull request #11651 from JosJuice/android-profile-off-by-one
Android: Fix per-game profile setting off-by-one
2023-03-14 02:02:00 +01:00
Charles Lombardo
4f610bb354 Android: Make header padding appear even 2023-03-13 15:27:09 -04:00
JosJuice
5818685911 Android: Fix per-game profile setting off-by-one 2023-03-13 18:30:55 +01:00
Robin Kertels
784ce78eaf
Android: Use $applicationId for DocmentProvider authority
Fixes side by side installation of debug, benchmark and release builds.
2023-03-12 15:28:21 +01:00
JosJuice
804b94ee9e
Merge pull request #11524 from K0bin/document-provider
Android: Implement DocumentProvider
2023-03-11 19:24:19 +01:00
JosJuice
08334015f9 Android: Remove SettingsActivityView parameters from Settings
No longer used for anything.
2023-03-11 18:49:43 +01:00
JosJuice
99600ef781 Android: Rework the "global" settings functions
getXGlobal() is now identical to getX(), and setXGlobal(int, X) is now
identical to setX(int, X) in the cases where setX(int, X) exists.
We can remove/rename them.
2023-03-11 18:49:43 +01:00
JosJuice
58fc347f8d Android: Don't require Settings object for reading a setting
Made unnecessary by the previous commit.
2023-03-11 18:49:43 +01:00
JosJuice
68fd133057 Android: Remove support for the old config system
All settings that we care about from an Android perspective are now
supported by the new config system, so we can remove all the Android code
for the old config system. This should have no impact on users.
2023-03-11 17:51:59 +01:00
JosJuice
53e7090f55 Migrate game INI profile setting to new config system 2023-03-11 17:51:58 +01:00
JosJuice
62ff2f1030
Merge pull request #11385 from JosJuice/android-input-overhaul
Android input overhaul
2023-03-11 12:37:44 +01:00
Robin Kertels
13ed46a488
Android: Implement DocumentProvider
This allows users to access the Dolphin user directory.
2023-03-08 23:09:49 +01:00
Robin Kertels
1b47144312
Android: Center list view headers 2023-03-08 18:57:19 +01:00
Robin Kertels
edde253724
Android: Only show divider in settings for headers 2023-03-08 18:57:08 +01:00
Charles Lombardo
75ce7a04ca Android: Use coroutine for system updates 2023-03-07 15:45:41 -05:00
Charles Lombardo
d66d8210bf Android: Switch to indeterminate progress bar on system update cancel 2023-03-07 15:45:41 -05:00
Charles Lombardo
917ca2273e Android: Remove hardcoded strings from system update dialogs 2023-03-07 15:45:41 -05:00
Charles Lombardo
410aaef56e Android: Remove orientation lock on system update dialog 2023-03-07 15:45:41 -05:00
Charles Lombardo
c0868f04a9 Android: Use Kotlin extensions for lifecycle components 2023-03-07 15:45:41 -05:00
Charles Lombardo
5eeb0a540b Android: Convert OnlineUpdateRegionSelectDialogFragment to Kotlin 2023-03-07 15:45:41 -05:00
Charles Lombardo
0ac4fe763b Android: Convert SystemMenuNotInstalledDialogFragment to Kotlin 2023-03-07 15:45:41 -05:00
Charles Lombardo
c8907349be Android: Convert SystemUpdateResultFragment to Kotlin 2023-03-07 15:45:40 -05:00
Charles Lombardo
60cb886cd4 Android: Convert WiiUtils to Kotlin 2023-03-07 15:45:40 -05:00
Charles Lombardo
2b17e0334a Android: Convert SystemUpdateViewModel to Kotlin 2023-03-07 15:45:40 -05:00
Charles Lombardo
6dfa555099 Android: Convert SystemUpdateProgressBarDialogFragment to Kotlin 2023-03-07 15:45:40 -05:00
JosJuice
75fb1a7edf Android: Disable input device sensor input due to crash 2023-03-07 17:39:34 +01:00
JosJuice
1788a797e7 Android: Add "more settings" button to overlay control setting dialog
Some people might wonder where the ability to select an extension
and the Sideways Wii Remote went. This button will take them to the
general settings, which is where those settings now live.

At some point in the future, we should probably move everything to the
general settings. But this pull request is already big enough as it is!
2023-03-07 17:39:34 +01:00
JosJuice
6b5f82c12f Android: Change how the overlay controller setting works, part 2
The previous commit wasn't enough for getting inputs to work for
controllers 2-4.
2023-03-07 17:39:34 +01:00
JosJuice
1b55d7c594 Android: Change how the overlay controller setting works
Up until now, there have been two settings on Android that stored the
selected Wii Remote extension: the normal one that's also used on PC,
and a SharedPreferences one that's used by the overlay controls to
determine what controls to show. It is possible for these two to end up
out of sync, and my input changes have made that more likely to happen.

To fix this, let's rework how the overlay controller setting works.
We don't want it to encode the currently selected Wii Remote extension.
However, we can't simply get rid of the setting, because for some Wii
games we need the ability to switch between a GameCube controller and a
Wii Remote. What this commit does is give the user the option to select
any of the 4 GameCube controllers and any of the 4 Wii Remotes. (Before,
controllers 2-4 weren't available in the overlay.) Could be useful for
things like the Psycho Mantis fight in Metal Gear Solid. I'm also
switching from SharedPreferences to Dolphin.ini while I'm at it.
2023-03-07 17:39:34 +01:00
JosJuice
4c326f2030 Android: Remove the in-emulation IR sensitivity options
This too can be set in the normal controller settings now.
2023-03-07 17:39:34 +01:00
JosJuice
ee2c7dc24b Android: Remove the in-emulation motion control options
You can set this in the normal controller settings now.
2023-03-07 17:39:34 +01:00
JosJuice
32cb41007b Android: Allow changing controller settings during emulation 2023-03-07 17:39:34 +01:00
JosJuice
c2779aef06 Android: Add the advanced input mapping dialog
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-07 17:39:30 +01:00
JosJuice
42943672bb Android: Add selecting input profile per game 2023-03-03 22:28:25 +01:00
JosJuice
1eeded23df Android: Add input profile management
Co-authored-by: Charles Lombardo <clombardo169@gmail.com>
2023-03-03 22:28:25 +01:00
JosJuice
7ef229d908 Android: Show warning when using old pre-defined controller INIs
Co-authored-by: Charles Lombardo <clombardo169@gmail.com>
2023-03-03 22:28:25 +01:00
JosJuice
8b78f73e80 Android: Add Default and Clear actions for controllers 2023-03-03 22:28:25 +01:00
JosJuice
ea3200d4ba Android: Prevent showing mapping dialog with no device selected 2023-03-03 22:28:25 +01:00
JosJuice
a1cc19f443 Android: Add "Create mappings for other devices" 2023-03-03 22:28:24 +01:00
JosJuice
2b1dd52750 Android: Add input device selection 2023-03-03 22:28:24 +01:00
JosJuice
2113bf5e3a Android: Implement enabling/disabling control groups
All this code for just a single checkbox... Ah well, it has to be done
2023-03-03 22:28:24 +01:00
JosJuice
a78dca5fb0 Android: Move Sideways Wii Remote setting one submenu up
A slight departure from DolphinQt, but I think it makes sense, because
it will make the important Sideways Wii Remote setting easier to find.
2023-03-03 22:28:24 +01:00
JosJuice
e7530a1cb9 Android: Split Wii Remote settings into submenus
Too much stuff on one screen otherwise. This split matches DolphinQt.
2023-03-03 22:28:24 +01:00
JosJuice
0dd8bbbbbb Android: Add extension selection 2023-03-03 22:28:24 +01:00
JosJuice
1c26a85e35 Android: Add NumericSetting support 2023-03-03 22:28:24 +01:00
JosJuice
2c529b9db1 Android: Add new input mapping implementation 2023-03-03 22:28:24 +01:00
JosJuice
dd8976f18d Android: Remove old input mapping implementation
This old code is of no use now that ButtonManager is gone.
2023-03-03 22:28:24 +01:00
JosJuice
304d898966 Android: Remove copyAsset's overwrite parameter
Because of the previous commit, this is no longer needed.
2023-03-03 22:28:24 +01:00
JosJuice
93657cce54 Android: Stop extracting pre-defined controller INIs 2023-03-03 22:28:24 +01:00
JosJuice
8e33458f48 ControllerInterface/Android: Implement rumble 2023-03-03 22:28:23 +01:00
JosJuice
065481d989 ControllerInterface/Android: Automatically suspend sensors
This is a battery-saving measure. Whether a sensor should be suspended
is determined in the same way as whether key events and motion events
should be handled by the OS rather than consumed by Dolphin.
2023-03-03 22:28:23 +01:00
JosJuice
36acb17700 ControllerInterface/Android: Implement sensor input for InputDevices
This functionality was added in Android 12 to let apps get motion data
for gamepads.
2023-03-03 22:28:23 +01:00
JosJuice
5e51b56d72 ControllerInterface/Android: Implement sensor input 2023-03-03 22:28:23 +01:00
JosJuice
104ea09892 ControllerInterface/Android: Implement hotplug 2023-03-03 22:28:23 +01:00
JosJuice
ca508e4503 ControllerInterface/Android: Handle input events
Android doesn't let us poll inputs whenever we want. Instead, we
listen to input events (activities will have to forward them to the
input backend), and store the received values in atomic variables
in the Input classes. This is similar in concept to how ButtonManager
worked, but without its homegrown second input mapping system.
2023-03-03 22:28:23 +01:00
JosJuice
68ebb5c33e Android: Remove old rumble implementation 2023-03-03 22:28:23 +01:00
JosJuice
9e7a2ee0fb Android: Remove old motion input implementation 2023-03-03 22:28:23 +01:00
JosJuice
0150f521f7 ControllerInterface/Android: Rip out ButtonManager
ButtonManager is very different from how a normal input backend works,
and is making it hard for us to improve controller support on Android.
The following commits will add a new input backend in its place.
2023-03-03 22:28:23 +01:00
Mai
6fcec80eb0
Merge pull request #11605 from JosJuice/android-mappings-button
Android: Add a button for accessing controller mappings
2023-03-02 15:06:47 -05:00
Mai
78e8669bac
Merge pull request #11614 from t895/kotlin-cheats
Android: Convert Cheats Activity to Kotlin
2023-03-02 15:04:19 -05:00
Mai
1b7969bc62
Merge pull request #11615 from t895/kotlin-riivolution
Android: Convert Riivolution Boot Activity to Kotlin
2023-03-02 15:03:43 -05:00
Mai
b9fd7e7bd4
Merge pull request #11616 from t895/kotlin-skylanders
Android: Convert Skylanders code to Kotlin
2023-03-02 15:03:18 -05:00
JosJuice
96deb2d897 Android: Hide controller mappings button when controller type is None
Also removed the make_sure_continuous_scan_enabled message.
It doesn't make sense with the new UX.
2023-03-02 18:25:10 +01:00
Charles Lombardo
2067c8eed1 Android: Convert ConvertActivity to Kotlin 2023-03-02 01:54:46 -05:00
Charles Lombardo
fb432dd58a Android: Convert ConvertFragment to Kotlin 2023-03-02 01:54:46 -05:00
Charles Lombardo
7efb672be6 Android: Convert SkylanderSlotAdapter to Kotlin 2023-03-01 17:32:19 -05:00
Charles Lombardo
36f1315513 Android: Convert SkylanderSlot to Kotlin 2023-03-01 17:32:07 -05:00
Charles Lombardo
bbc1951afb Android: Convert SkylanderConfig to Kotlin 2023-03-01 17:32:07 -05:00
Charles Lombardo
71e82d76b5 Android: Convert SkylanderPair to Kotlin 2023-03-01 17:13:42 -05:00
Charles Lombardo
85b30f198b Android: Convert Skylander to Kotlin 2023-03-01 17:13:01 -05:00
Charles Lombardo
4045e213ba Android: Convert RiivolutionAdapter to Kotlin 2023-03-01 14:39:18 -05:00
Charles Lombardo
df21663d4c Android: Convert RiivolutionBootActivity to Kotlin 2023-03-01 14:38:59 -05:00
Charles Lombardo
79d0ff55d2 Android: Convert RiivolutionItem to Kotlin 2023-03-01 14:38:37 -05:00
Charles Lombardo
e37503675a Android: Convert RiivolutionViewHolder to Kotlin 2023-03-01 14:38:19 -05:00
Charles Lombardo
ec7b811de3 Android: Convert RiivolutionPatches to Kotlin 2023-03-01 14:38:02 -05:00
Charles Lombardo
3935449ca0 Android: Convert TwoPaneOnBackPressedCallback to Kotlin 2023-03-01 13:47:28 -05:00
Charles Lombardo
6bc4ae7438 Android: Convert SettingDisabledWarningFragment to Kotlin 2023-03-01 13:41:55 -05:00
Charles Lombardo
53d404c5a0 Android: Convert HeaderViewHolder to Kotlin 2023-03-01 13:41:02 -05:00
Charles Lombardo
58b7b80902 Android: Convert GraphicsModsDisabledWarningFragment to Kotlin 2023-03-01 13:40:48 -05:00
Charles Lombardo
a8da5902bb Android: Convert CheatViewHolder to Kotlin 2023-03-01 13:40:28 -05:00
Charles Lombardo
25fb3218d9 Android: Convert CheatsDisabledWarningFragment to Kotlin 2023-03-01 13:40:08 -05:00
Charles Lombardo
fcfde12c52 Android: Convert CheatsAdapter to Kotlin 2023-03-01 13:39:49 -05:00
Charles Lombardo
23d9def613 Android: Convert CheatsActivity to Kotlin 2023-03-01 13:39:23 -05:00
Charles Lombardo
3bcc4a0a59 Android: Convert CheatListFragment to Kotlin 2023-03-01 13:39:07 -05:00
Charles Lombardo
d8c1381155 Android: Convert CheatItemViewHolder to Kotlin 2023-03-01 13:38:27 -05:00
Charles Lombardo
cacbac9152 Android: Convert CheatItem to Kotlin 2023-03-01 13:37:57 -05:00
Charles Lombardo
5f5c95e7da Android: Convert CheatDetailsFragment to Kotlin 2023-03-01 13:37:21 -05:00
Charles Lombardo
b2dd510d0a Android: Convert ActionViewHolder to Kotlin 2023-03-01 13:37:07 -05:00
Charles Lombardo
fb177631ef Android: Convert ReadOnlyCheat to Kotlin 2023-03-01 13:36:53 -05:00
Charles Lombardo
59ecda7939 Android: Convert CheatsViewModel to Kotlin 2023-03-01 13:36:40 -05:00
Charles Lombardo
1b61f2c223 Android: Convert Cheat to Kotlin 2023-03-01 13:35:43 -05:00
Charles Lombardo
fbc617c917 Android: Convert AbstractCheat to Kotlin 2023-03-01 13:35:33 -05:00
Charles Lombardo
37e8cd1789 Android: Convert GeckoCheat to Kotlin 2023-03-01 13:35:14 -05:00
Charles Lombardo
9e090c6bab Android: Convert GraphicsMod to Kotlin 2023-03-01 13:34:34 -05:00
Charles Lombardo
5f6995fe6c Android: Convert GraphicsModGroup to Kotlin 2023-03-01 13:34:09 -05:00
Charles Lombardo
9cbe66bce4 Android: Convert PatchCheat to Kotlin 2023-03-01 13:33:16 -05:00
Charles Lombardo
408b6cb50c Android: Convert ARCheat to Kotlin 2023-03-01 13:32:42 -05:00
Charles Lombardo
a4730a9388 Android: Initialize TaskViewModel earlier in User Data Activity 2023-03-01 08:28:44 -05:00
Charles Lombardo
211be4698f
Merge pull request #11515 from t895/user-data-kotlin
Android: Rewrite User Data Activity in Kotlin
2023-02-28 23:47:00 -05:00
Charles Lombardo
c904e068f0 Android: Use DialogFragments to direct UserData actions 2023-02-28 22:33:42 -05:00