Commit Graph

2352 Commits

Author SHA1 Message Date
Charles Lombardo
df806125b9 Android: Ignore input from invalid pointer identifier 2023-03-22 21:44:37 -04:00
Charles Lombardo
ce66d5875f Android: Fix long press action for leanback game cards 2023-03-21 19:12:28 -04:00
Charles Lombardo
cf0706c239 Android: Remove deprecated use of launchWhenStarted/Resumed 2023-03-21 18:53:48 -04:00
JosJuice
002a96adb0
Merge pull request #11662 from t895/kotlin-settings
Android: Convert Settings to Kotlin
2023-03-19 17:15:22 +01:00
JosJuice
8e363c0995 Android: Translate C++ "w" to ParcelFileDescriptor "wt"
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-18 13:44:01 +01:00
JosJuice
6b545eaada
Merge pull request #11659 from JosJuice/android-after-dirinit-runner-cleanup
Android: Clean up AfterDirectoryInitializationRunner
2023-03-16 17:12:58 +01:00
Charles Lombardo
a32d66e5ec Android: Upgrade Kotlin to 1.8.10 2023-03-15 23:58:11 -04:00
Charles Lombardo
f06c0897ab Android: Update gradle to 8.0 2023-03-15 23:58:11 -04:00
Charles Lombardo
de34c962d7 Android: Upgrade AGP to 7.4.2 2023-03-15 23:58:11 -04:00
Charles Lombardo
7e84285047 Android: Upgrade dependencies
Desugar JDK 2.0.0 -> 2.0.2
Androidx Appcompat 1.6.0 -> 1.6.1
Androidx Exif Interface 1.3.5 -> 1.3.6
Material Components 1.7.0 -> 1.8.0
Androidx recyclerview 1.2.1 -> 1.3.0
Androidx viewmodel ktx 2.5.1 -> 2.6.0
Androidx viewmodel 2.5.1 -> 2.6.0
2023-03-15 23:58:11 -04:00
Charles Lombardo
805f921b55 Android: Remove unused benchmark flags 2023-03-15 23:57:47 -04:00
Charles Lombardo
2782318b8c Android: Update ndk version to 25.2.9519653 2023-03-15 23:57:47 -04:00
Charles Lombardo
9020b6aeb9 Android: Convert SettingsAdapter to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
673c8d9cb2 Android: Convert SettingsActivity to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
4cbbe15e77 Android: Convert SettingsFragment to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
cea882181d Android: Convert SettingsActivityPresenter to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
3b32ff6980 Android: Convert SettingsFile to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
92f39a98d6 Android: Convert SwitchSettingViewHolder to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
49e480ee53 Android: Convert SubmenuViewHolder to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
760417b08f Android: Convert SliderViewHolder to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
9b79f5fa5d Android: Convert SingleChoiceViewHolder to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
917a0c2287 Android: Convert SettingViewHolder to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
7b7ee13162 Android: Convert RunRunnableViewHolder to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
6a08b12c9b Android: Convert InputStringSettingViewHolder to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
bc6d10e29a Android: Convert HeaderViewHolder to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
789493b722 Android: Convert HeaderHyperLinkViewHolder to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
220cdafbaa Android: Convert FilePickerViewHolder to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
f0304d80ef Android: Convert SettingsViewModel to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
508e56e2bf Android: Convert SettingsFragmentView to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
656d91cd18 Android: Convert SettingsFragmentPresenter to Kotlin 2023-03-15 17:35:48 -04:00
Charles Lombardo
c78cde2e18 Android: Convert SettingsActivityView to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
dc77ee140d Android: Convert MenuTag to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
2af8efdd72 Android: Convert SwitchSetting to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
ab11b44938 Android: Convert SubmenuSetting to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
065c80fb4d Android: Convert SliderSetting to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
3c6bb9e0c9 Android: Convert SingleChoiceSettingDynamicDescriptions to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
d51f504629 Android: Convert SingleChoiceSetting to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
1fc9f03b27 Android: Convert RunRunnable to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
62679bacc1 Android: Convert PercentSliderSetting to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
72be338d56 Android: Convert LogSwitchSetting to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
56c33890b9 Android: Convert InvertedSwitchSetting to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
2369977e14 Android: Convert IntSliderSetting to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
826e849a7b Android: Convert InputStringSetting to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
fc97c4d35a Android: Convert HyperLinkHeaderSetting to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
f95fd7788e Android: Convert HeaderSetting to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
1e2e9e004b Android: Convert FloatSliderSetting to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
f7ad065408 Android: Convert FilePicker to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
1553477c09 Android: Convert StringSetting to Kotlin 2023-03-15 17:35:34 -04:00
Charles Lombardo
2c560e05a8 Android: Convert Settings to Kotlin 2023-03-15 17:35:21 -04:00
Charles Lombardo
dee85cead8 Android: Convert PostProcessing to Kotlin 2023-03-15 17:35:21 -04:00
Charles Lombardo
42f4fb815f Android: Convert NativeConfig to Kotlin 2023-03-15 17:35:21 -04:00
Charles Lombardo
7c59640f8e Android: Convert IntSetting to Kotlin 2023-03-15 17:35:21 -04:00
Charles Lombardo
46e68171b9 Android: Convert FloatSetting to Kotlin 2023-03-15 17:34:49 -04:00
Charles Lombardo
3ac72855e3 Android: Convert BooleanSetting to Kotlin 2023-03-15 17:34:21 -04:00
Charles Lombardo
84c23c14db Android: Convert AdHocStringSetting to Kotlin 2023-03-15 15:49:37 -04:00
Charles Lombardo
a8f3d4291a Android: Convert AdHocBooleanSetting to Kotlin 2023-03-15 15:49:37 -04:00
Charles Lombardo
f1028b4652 Android: Convert AbstractStringSetting to Kotlin 2023-03-15 15:49:37 -04:00
Charles Lombardo
32f9e48257 Android: Convert AbstractIntSetting to Kotlin 2023-03-15 15:49:37 -04:00
Charles Lombardo
baeeaa2a43 Android: Convert AbstractFloatSetting to Kotlin 2023-03-15 15:49:37 -04:00
Charles Lombardo
5bc2b46983 Android: Convert AbstractBooleanSetting to Kotlin 2023-03-15 15:49:37 -04:00
Charles Lombardo
21e0b5b9d9 Android: Convert AbstractSetting to Kotlin 2023-03-15 15:49:37 -04:00
Charles Lombardo
43fa5cf5e4 Android: Convert SettingsItem to Kotlin 2023-03-15 15:49:37 -04:00
Charles Lombardo
6dc6720250 Android: Convert StringSingleChoiceSetting to Kotlin 2023-03-15 15:49:37 -04:00
Charles Lombardo
98ab893be7 Android: Create extension functions for serializables
Getting serializables without explicitly stating the type is deprecated in Android 13. However we still need a way to get a serializable in versions below that. Now with these we can avoid repeating the same if block.
2023-03-15 14:26:37 -04:00
JosJuice
fe8be906f3 Android: Use LifecycleOwner instead of subtype 2023-03-14 23:03:13 +01:00
JosJuice
846f5f6671 Android: Clean up outdated comment in AfterDirectoryInitializationRunner 2023-03-14 23:03:13 +01:00
Mai
4281606838
Merge pull request #11641 from JosJuice/android-remove-old-config
Android: Remove support for the old config system
2023-03-14 15:48:04 -04:00
Pierre Bourdon
aceafc9d26
Merge pull request #11652 from t895/header-padding
Android: Make header padding appear even
2023-03-14 13:03:19 +01:00
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
Admiral H. Curtiss
eb25c46a91
HW/DVDInterface: Refactor to class. 2023-03-10 18:12:59 +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
JosJuice
95ce41ac56
Merge pull request #11399 from JosJuice/jit-one-stack
Jit: Don't use a second stack
2023-03-03 22:27:16 +01:00
Mai
ab2f8d3475
Merge pull request #11607 from AdmiralCurtiss/sd-progress
Qt/WiiPane: Add progress window for SD card conversion.
2023-03-02 15:08:18 -05: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
Charles Lombardo
8d1cf14565 Android: Convert ThreadUtil to Kotlin 2023-02-28 22:21:18 -05:00
Admiral H. Curtiss
435d8c39ee
Common/FatFsUtil: Add callback for cancelling SD card conversion. 2023-02-28 20:31:51 +01:00
JosJuice
86c1f6e1e7 Jit: Don't use a second stack
This second stack leads to JNI problems on Android, because ART fetches
the address and size of the original stack using pthread functions
(see GetThreadStack in art/runtime/thread.cc), and (presumably) treats
stack addresses outside of the original stack as invalid. (What I don't
understand is why some JNI operations on the CPU thread work fine
despite this but others don't.)

Instead of creating a second stack, let's borrow the approach ART uses:
Use pthread functions to find out the stack's address and size, then
install guard pages at an appropriate location. This lets us get rid
of a workaround we had in the MsgAlert function.

Because we're no longer choosing the stack size ourselves, I've made some
tweaks to where the put the guard pages. Previously we had a stack of
2 MiB and a safe zone of 512 KiB. We now accept stacks as small as 512 KiB
(used on macOS) and use a safe zone of 256 KiB. I feel like this should
be fine, but haven't done much testing beyond "it seems to work".

By the way, on Windows it was already the case that we didn't create
a second stack... But there was a bug in the implementation!
The code for protecting the stack has to run on the CPU thread, since
it's the CPU thread's stack we want to protect, but it was actually
running on EmuThread. This commit fixes that, since now this bug
matters on other operating systems too.
2023-02-28 20:29:46 +01:00
JosJuice
b827b155a0 Android: Refactor handleMenuTag
It was a bit silly having four functions for effectively the same thing
in all of SettingsFragmentView, SettingsFragment, SettingsActivityView,
SettingsActivity, and SettingsActivityPresenter.

With this change, we split on the four MenuTag types in
SettingsActivityPresenter instead of in SettingsAdapter.
2023-02-27 21:52:17 +01:00
JosJuice
8acc39cc3f Android: Add a button for accessing controller mappings
The settings GameCube Controller N and Wii Remote N (where N is a number)
have two purposes: You can select what controller type you want to use,
and also, when you select a controller type (even if you're selecting the
one that already is selected), the mapping settings open. This second part
is less discoverable than it ideally should be. I'm changing it so that
there now is a button for opening the mapping settings instead.
2023-02-27 20:10:24 +01:00
Charles Lombardo
a049a0d4bc Android: Remove unused refreshScreenshotAtPosition interface method 2023-02-25 11:17:16 -05:00
Charles Lombardo
5957d85178 Android: Create AutofitGridLayoutManager
Extends GridLayoutManager to make span changes much more responsive.
2023-02-25 11:17:16 -05:00
JosJuice
2aedd8f568
Merge pull request #11590 from t895/unused-layout-class
Android: Remove SettingsFrameLayout
2023-02-20 23:33:07 +01:00
JosJuice
0fb9105700
Merge pull request #11408 from t895/coil
Android: Rewrite image loading with Kotlin and Coil
2023-02-20 20:51:36 +01:00
Charles Lombardo
0638e08989 Android: Remove SettingsFrameLayout 2023-02-20 14:11:08 -05:00
Charles Lombardo
28faca63a6 Android: Replace Glide with Coil image loading 2023-02-20 00:38:24 -05:00
JosJuice
e65167f9cd
Merge pull request #11521 from t895/adjust-grid-options
Android: Simplify the grid options dialog fragment
2023-02-18 15:42:46 +01:00
Charles Lombardo
8d16aed581 Android: Convert UserDataActivity to Kotlin 2023-02-15 18:50:33 -05:00
Scott Mansell
2c24d07837
Merge pull request #11538 from t895/disc-speed-stuff
Rename "Speed up Disc Transfer Rate" to "Emulate Disc Speed"
2023-02-13 15:46:56 +13:00
Charles Lombardo
d0941342d2 Android: Expose Emulate Disc Speed 2023-02-12 16:20:38 -05:00
MayImilae
508c79a66f Rename VI Skip to VBI Skip
VI Skip was very hard to explain on the blog, so this small changes
clarifies what VI Skip is to resolve that issue.
2023-02-11 20:28:41 -08:00
Scott Mansell
ccf92a3e56
Merge pull request #11522 from phire/KillRendererWithFire
Kill Renderer (with phire)
2023-02-09 19:59:16 +13:00
Charles Lombardo
e6583f8bec Android: Convert image loading code to Kotlin 2023-02-08 19:34:27 -05:00
Joshua de Reeper
680db55239 Android: Add Skylanders Portal
Co-Authored-By: Charles Lombardo <clombardo169@gmail.com>
2023-02-02 21:16:14 +13:00
Admiral H. Curtiss
e55a0f4fff
Merge pull request #11495 from OatmealDome/android-cmake
Android: Don't enforce a particular CMake version
2023-02-01 19:35:09 +01:00
Charles Lombardo
2ec7577788 Android: Fix settings being editable when marked otherwise 2023-02-01 00:51:48 -05:00
Scott Mansell
abfc75f362 Cleanup headers 2023-01-31 19:41:24 +13:00
Charles Lombardo
be8cbe3c66
Merge pull request #11513 from JosJuice/android-scaled-int-setting
Android: Create ScaledIntSetting class
2023-01-31 01:05:36 -05:00
Scott Mansell
0d4537d60f Move Presenting, Dumping and ImGui out of Renderer 2023-01-31 18:45:21 +13:00
Charles Lombardo
12b8b44a08 Android: Simplify the grid options dialog fragment 2023-01-30 17:09:16 -05:00
JosJuice
43194b2742
Merge pull request #11519 from lioncash/android
AndroidCommon: Make use of std::string_view where applicable
2023-01-30 20:21:44 +01:00
JosJuice
2e8ad9f105 Android: Create ScaledIntSetting class
A little refactoring to cut down on the size of the very big
SettingsFragmentPresenter class.

I ended up adding a bunch of @NonNull annotations in various settings
classes so I could make the parameters `Settings` instead of `Settings?`
in the new Kotlin code.
2023-01-30 20:07:09 +01:00
JosJuice
f0b833a639
Merge pull request #11518 from t895/deprecated-setting
Android: Remove unused force filtering setting
2023-01-30 19:56:44 +01:00
Charles Lombardo
96bc0a3063 Android: Remove unused force filtering setting 2023-01-30 13:38:39 -05:00
Lioncash
5c1954c843 AndroidCommon: Make use of std::string_view where applicable
Several of these can take a string_view rather than needing to
specifically use std::string.
2023-01-30 13:30:52 -05:00
Charles Lombardo
26c8440ae1 Android: Set each slider step size manually 2023-01-30 13:17:02 -05:00
JosJuice
00fdf1ddce Android: Fix crash when attempting to change MEM2 size
The step size for the slider ended up being 10, but Android wanted it
to be a divisor of the slider's range (which is 128 - 64 = 64).
2023-01-29 23:35:54 +01:00
Pierre Bourdon
05b77925cb
Merge pull request #11460 from t895/reveal-settings
Android: Reveal several hidden settings
2023-01-29 07:00:38 +01:00
Charles Lombardo
ab817dcaed Android: Convert Analytics to Kotlin 2023-01-26 21:14:35 -05:00
Charles Lombardo
14c7d81b54 Android: Create analytics dialog fragment 2023-01-26 20:42:39 -05:00
OatmealDome
a534af4dd6 Android: Don't enforce a particular CMake version 2023-01-26 18:46:31 -05:00
Pierre Bourdon
9c9310bf44
Merge pull request #11208 from TellowKrinkle/CPUCull
Cull vertices on the CPU
2023-01-26 23:15:23 +01:00
TellowKrinkle
7413be1487 VideoCommon: Add configuration option for CPUCull 2023-01-25 02:21:56 -06:00
Lioncash
e5b91f00b0 Common: Replace StringBeginsWith/StringEndsWith with std equivalents
Obsoletes these functions in favor of the standard member functions
added in C++20.
2023-01-24 14:58:20 -05:00
Mai
ba6ee9d7ba
Merge pull request #11413 from t895/sample-window-slider
Android: Add slider for Performance Sample Window
2023-01-24 17:22:11 +00:00
Mai
f4a8f80228
Merge pull request #11482 from t895/rtl-fixes
Android: Fix RTL layout in several views
2023-01-24 16:52:06 +00:00
Mai
cb55921971
Merge pull request #11443 from t895/agp-upgrade-eel
Android: Update build tools and dependencies
2023-01-24 16:50:40 +00:00
Mai
b6d2cf5e30
Merge pull request #11483 from t895/grid-option-fix
Android: Fix grid options menu string
2023-01-24 16:49:19 +00:00
Charles Lombardo
c3a1a7d924 Android: Fix rtl layout in cheat details fragment 2023-01-24 08:41:20 -05:00
Charles Lombardo
7741046e6f Android: Fix rtl layout for about dialog 2023-01-24 08:41:20 -05:00
Charles Lombardo
8d5967ad87 Android: Fix rtl layout on game details dialog 2023-01-24 08:41:20 -05:00
Charles Lombardo
d61dbd06a6 Android: Fix rtl layout for cheat warning fragment 2023-01-24 08:25:47 -05:00
Charles Lombardo
2904e28d91 Android: Fix rtl layout for cheat list items 2023-01-24 08:25:47 -05:00
Charles Lombardo
3fa08833ff Android: Fix rtl layout for multiple settings activity views 2023-01-24 08:25:47 -05:00
Charles Lombardo
dc11180784 Android: Fix rtl layout for control dialogs 2023-01-24 08:25:47 -05:00
Charles Lombardo
3e1a096f7f Android: Fix rtl layout in convert activity 2023-01-24 08:25:47 -05:00
Charles Lombardo
82d0501fc8 Android: Fix rtl layout for in-game menu fragment 2023-01-24 08:25:47 -05:00
Charles Lombardo
9bccf58fdb Android: Fix rtl layout for grid options dialog 2023-01-24 08:25:47 -05:00
Charles Lombardo
ab0ab1aa7d Android: Fix rtl layout in riivolution boot activity 2023-01-24 08:25:47 -05:00
Charles Lombardo
b35ee27568 Android: Fix rtl layout in user data activity 2023-01-24 08:25:47 -05:00
Charles Lombardo
cd7251cd3a Android: Fix rtl layout on card_game 2023-01-24 08:25:46 -05:00
Pierre Bourdon
014d0573b8
Merge pull request #11455 from t895/about-dialog
Android: Add about dialog
2023-01-24 13:16:15 +01:00
Charles Lombardo
82de765106 Android: Fix grid options menu string
Previously the string was "Settings" and not "Grid Options"
2023-01-23 23:44:46 -05:00
Charles Lombardo
860f56150a Android: Add safeguards around skip ipl setting
A user shouldn't be able to disable "skip ipl" when they don't have a bios file. This finds the ipl file and tells the setting when toggling is allowed. Additionally, if the user previously disabled the option and then deletes their ipl file, they will be allowed to enable it but toggling will be disabled afterwards.
2023-01-23 12:48:27 -05:00
Pierre Bourdon
8d5edb13a9
Merge pull request #11367 from Sam-Belliveau/lagbegone
VideoCommon: VI Skip
2023-01-19 01:20:01 +01:00
Charles Lombardo
b598b6ec72 Android: Add about dialog 2023-01-18 15:58:06 -05:00
Charles Lombardo
bbb83054af Android: Expose custom rtc options 2023-01-18 01:56:05 -05:00
Charles Lombardo
d63462a14e Android: Add missing headers 2023-01-18 01:55:39 -05:00
Charles Lombardo
6448d6dbe7 Android: Expose emulated memory size override
Update BooleanSetting.java
2023-01-18 01:55:39 -05:00
Charles Lombardo
96c8a7ee1f Android: Expose texture filtering options 2023-01-17 11:13:02 -05:00
Charles Lombardo
23331e4367 Android: Expose frame dump compression level 2023-01-17 11:13:02 -05:00
Charles Lombardo
6373c9225b Android: Expose accurate cpu cache toggle 2023-01-17 01:10:46 -05:00
Charles Lombardo
bc64392692 Android: Expose pause on panic toggle 2023-01-17 01:08:40 -05:00
Pierre Bourdon
10fd768898
Merge pull request #11420 from t895/copy-profile
Android: Copy baseline profile during release builds
2023-01-17 04:48:30 +01:00
Charles Lombardo
a3b7510505 Android: Expose skip main menu toggle 2023-01-16 20:39:33 -05:00
JosJuice
716dabde96
Merge pull request #11447 from t895/save-state-fix
Android: Fix large strings in save/load savestate fragment
2023-01-16 19:09:37 +01:00
Charles Lombardo
b1e05c9125 Android: Remove pre-generated baseline profile 2023-01-15 21:16:55 -05:00
Charles Lombardo
19aa9247be Android: Copy baseline profile during release builds 2023-01-15 21:16:55 -05:00
Charles Lombardo
dbe03a4f76 Android: Fix navigation bar buttons appearing invisible on API 26 2023-01-15 18:36:22 -05:00
Charles Lombardo
76ca57ef2e Android: Fix large strings in save/load savestate fragment 2023-01-15 17:49:48 -05:00
Charles Lombardo
33c5f7a129 Android: Update benchmark module dependencies
Androidx JUnit 1.1.4 -> 1.1.5
Androidx Espresso 3.5.0 -> 3.5.1
2023-01-14 18:41:18 -05:00
Charles Lombardo
005d7574aa Android: Update app module dependencies
Androidx Fragment 1.5.4 -> 1.5.5
Androidx AppCompat 1.5.1 -> 1.6.0
Androidx Profile Installer 1.2.1 -> 1.2.2
Core android library desugaring libraries 1.1.5 -> 2.0.0
2023-01-14 18:39:43 -05:00
Charles Lombardo
45cdc7357a Android: Upgrade Java bytecode from 1.8 to 11 2023-01-14 18:35:32 -05:00
Charles Lombardo
27466fd5f9 Android: Upgrade AGP from 7.3.1 to 7.4.0 2023-01-14 18:30:07 -05:00
Charles Lombardo
054b2219d4 Android: Upgrade gradle from 7.5.1 to 7.6 2023-01-14 18:29:39 -05:00
Sam Belliveau
23ad07b368 Add VISkip 2023-01-14 01:56:37 -05:00
Charles Lombardo
4f397edab3 Android: Fix grid options text borders
Previously on displays with a small width, text would appear under the switch. Now the text will break into a new line.
2023-01-13 17:02:53 -05:00
Charles Lombardo
937e08980e Android: Change slider step size based on range
Credit to JosJuice for the slider formula
2023-01-13 16:32:09 -05:00
Charles Lombardo
e70b57fe8a Android: Adjust width of slider value text view 2023-01-13 16:32:09 -05:00
Charles Lombardo
27e64e6855 Android: Add Performance Sample Window slider 2023-01-13 16:32:09 -05:00
Charles Lombardo
6b97b64e93 Android: Ignore workaround view height if 0 2023-01-10 12:01:54 -05:00
Charles Lombardo
7fe2faff4a Android: Expose "Log Render Time to File" toggle 2023-01-09 23:29:31 -05:00
Charles Lombardo
f49f3441b3 Android: Disable focus on workaround view 2023-01-09 14:20:50 -05:00
Charles Lombardo
72176641ef Android: Revert "Make the header focusable" 2023-01-09 14:20:34 -05:00
JosJuice
1af8602530
Merge pull request #11411 from t895/managed-device-update
Android: Update managed device for baseline profile generation
2023-01-08 13:37:41 +01:00
Charles Lombardo
d32cc1e5eb Android: Fix workaround view in cheats activity
When using a fullscreen mode on some phones that remove the navigation bar, inset callbacks will not be fired. To account for this we set the workaround view at a height of 1px to prevent the view from filling the entire screen due to this activity using a Constraint layout.
2023-01-07 13:08:51 -05:00
Charles Lombardo
6fe46fcf03 Android: Update managed device for baseline profile generation 2023-01-06 18:33:51 -05:00
Charles Lombardo
4d86e44c12 Android: Add hints to allow cheats activity to be previewed 2023-01-06 15:58:29 -05:00
JosJuice
24d7cf12a5 Android: Move FPS-related settings to a submenu
Back when this was just the FPS setting, having it in the top level
of the graphics settings was reasonable. But now it's seven settings.
Let's add a new submenu for them.
2022-12-29 17:34:23 +01:00
JosJuice
cc768b1ea3
Merge pull request #11357 from t895/elevate-ingame-fragment
Android: Elevate ingame menu fragment with color
2022-12-28 10:25:36 +01:00
Mai
9e9910df8b
Merge pull request #11376 from JosJuice/android-delete-local-ref
Android: Make more meticulous use of DeleteLocalRef
2022-12-28 00:57:29 +00:00
JosJuice
b3a368ae06 Android: Add VectorToJObjectArray utility function 2022-12-27 22:59:42 +01:00
JosJuice
0b9351c194 Android: Make more meticulous use of DeleteLocalRef
If we're in a function that isn't just going to immediately return to
Java, leaking local references can lead to problems eventually.
2022-12-27 22:03:44 +01:00
JosJuice
582d6b738b
Merge pull request #11358 from t895/close-soft-keyboard
Android: Close soft keyboard on panel close
2022-12-24 11:21:56 +01:00
JosJuice
b3bc9c41ea
Merge pull request #11369 from t895/switch-fix
Android: Allow users to interact with switches in settings
2022-12-24 09:09:17 +01:00
Charles Lombardo
cf8537576e Android: Allow users to interact with switches in settings 2022-12-24 02:56:36 -05:00
Charles Lombardo
22dd0dbc3c Android: Upgrade NDK to 25.1.8937393 2022-12-23 21:41:03 -05:00
Sam Belliveau
673f81c18a New FrameTime/VBlank Analyzer + Graph 2022-12-23 19:52:53 -05:00
Charles Lombardo
4423afd462 Android: Close soft keyboard on panel close 2022-12-20 17:06:21 -05:00
Charles Lombardo
9c57d6028d Android: Elevate ingame menu fragment with color
Whenever the app is not using the default theme, the ingame menu fragment will be treated as an elevated component like an alert dialog.
2022-12-20 16:39:17 -05:00
Mai
46bc21291a
Merge pull request #11346 from t895/grid-settings
Android: Move game grid options to MainActivity
2022-12-20 15:10:51 +00:00
Charles Lombardo
2f5808e7a4 Android: Convert ThemeHelper to Kotlin 2022-12-18 16:54:28 -05:00
Charles Lombardo
6090694eab Android: Move game grid options to Main/TV Activities 2022-12-17 02:00:48 -05:00
Charles Lombardo
3bfe722c49 Android: Use colorSurface attribute for cheats activity background 2022-12-15 13:32:53 -05:00
JosJuice
19db7a87a3
Merge pull request #11343 from t895/kotlin-clean
Android: Introduce Kotlin support
2022-12-11 20:12:47 +01:00
Charles Lombardo
8226506c84 Android: Introduce Kotlin support 2022-12-11 12:59:58 -05:00
JosJuice
82e87cf7b9
Merge pull request #9944 from JosJuice/android-nonsquare-buttons
Android: Allow non-square overlay control images
2022-12-11 12:10:55 +01:00
Mateus B. Cassiano
5f0960ff88 Android: fix compile error 2022-12-11 01:10:30 -04:00
JosJuice
1fd8d476e8
Merge pull request #11325 from t895/extra-dark
Android: Add black backgrounds toggle
2022-12-10 21:09:26 +01:00
JosJuice
2b7b3c3942
Merge pull request #11335 from t895/baseline-profile
Android: Baseline profile generation
2022-12-10 21:09:18 +01:00
Charles Lombardo
fd7a84b794 Android: Add black backgrounds toggle
Makes all background colors black in dark mode when enabled through a ThemeOverlay. Applied the same way as a theme/mode.
2022-12-10 14:53:01 -05:00
JosJuice
932926a4aa
Merge pull request #11329 from t895/elevation-bar
Android: Use ElevationOverlay for app bar elevation color
2022-12-10 20:33:56 +01:00
Charles Lombardo
2555e3720b Android: Replace Checkbox with MaterialSwitch 2022-12-10 00:23:07 -05:00
Charles Lombardo
974003888a Android: Baseline profile generation
This creates a new benchmark module that is responsible for generating baseline profiles and testing them. As part of this commit a baseline-prof.txt file has been included to speed up launch times with the app in its current state. Later, profile generation can be automated and keep up with the app as it changes.
2022-12-09 20:55:10 -05:00
Charles Lombardo
c440781ce7 Android: Upgrade dependencies 2022-12-08 14:13:15 -05:00
JosJuice
abf08b5869
Merge pull request #11309 from t895/agp-upgrade
Android: Upgrade AGP to 7.3.1
2022-12-08 19:57:59 +01:00
Charles Lombardo
f2c71a77fe Android: Use ElevationOverlay for app bar elevation color 2022-12-06 18:41:55 -05:00
JosJuice
2a23aab254
Merge pull request #11327 from t895/settings-animation
Android: New settings fragment animations
2022-12-06 22:11:38 +01:00
Charles Lombardo
b9d05c4668 Android: New settings fragment animations 2022-12-06 14:17:04 -05:00
Charles Lombardo
dbfcbcb670 Android: Migrate all strings to strings.xml 2022-12-06 14:11:06 -05:00
Charles Lombardo
e9c60f3e65 Android: Have each activity manage insets separately 2022-12-04 13:37:01 -05:00
JosJuice
6abcaadd5a
Merge pull request #11314 from t895/menu-cutout-padding
Android: Pad menu fragment when expanding to cutout area
2022-12-04 18:59:32 +01:00
Mai
f21edf6d5a
Merge pull request #11270 from t895/theme-mode
Android: Add theme mode switcher
2022-12-04 17:56:59 +00:00
JosJuice
3a7ecc851b
Merge pull request #11324 from t895/back-fix
Android: Fix cheats layout
2022-12-04 18:51:43 +01:00