Commit Graph

2232 Commits

Author SHA1 Message Date
Charles Lombardo b5c63b995c Android: Convert MainView to Kotlin 2023-06-05 20:08:53 -04:00
Charles Lombardo 01d4e6fe87 Android: Convert MainPresenter to Kotlin 2023-06-05 20:08:53 -04:00
Charles Lombardo 18a03e69a9 Android: Convert MainActivity to Kotlin 2023-06-05 20:08:53 -04:00
Charles Lombardo dff2d8111c Android: Convert CustomTitleView to Kotlin 2023-06-05 20:08:52 -04:00
Charles Lombardo a1d027fe07 Android: Convert SettingsRowPresenter to Kotlin 2023-06-05 15:44:26 -04:00
Charles Lombardo e4935d4b12 Android: Convert PlatformPagerAdapter to Kotlin 2023-06-05 15:44:26 -04:00
Charles Lombardo 0bd0fa4f44 Android: Convert InputOverlayPointer to Kotlin 2023-06-05 14:29:48 -04:00
Charles Lombardo ddb0de0410 Android: Convert InputOverlayDrawableJoystick to Kotlin 2023-06-05 14:29:39 -04:00
Charles Lombardo fb60b708f5 Android: Convert InputOverlayDrawableDpad to Kotlin 2023-06-05 14:29:31 -04:00
Charles Lombardo 500f1f1861 Android: Convert InputOverlayDrawableButton to Kotlin 2023-06-05 14:29:31 -04:00
Charles Lombardo 9828ffe250 Android: Convert InputOverlay to Kotlin 2023-06-05 14:29:31 -04:00
Charles Lombardo e6d8694cbe Android: Convert AppLinkActivity to Kotlin 2023-06-05 14:10:06 -04:00
Charles Lombardo cbca383bd2 Android: Convert CustomFilePickerActivity to Kotlin 2023-06-05 14:10:06 -04:00
Charles Lombardo 03675f7677 Android: Convert EmulationActivity to Kotlin 2023-06-05 14:10:05 -04:00
jnaidu360 66f4902a1e Improved Skylanders Portal Window Navigation
Adds features to improve navigation of Skylanders portal menu, includes:
-List of Skylanders and filters for searching
-Improved buttons for faster loading options
-Added default user folder for storing .sky files
2023-06-04 18:10:08 -07:00
Admiral H. Curtiss b3c9f49cbe
Core: Assert that only the Host thread may call PauseAndLock(). 2023-06-02 18:51:43 +02:00
JosJuice 3a81463e68 Android: Fix submenus for Wii Remote 2-4
Accessing any of the submenus "Buttons", "Motion Simulation" or
"Motion Input" for Wii Remotes 2-4 would actually lead to the
corresponding submenu for Wii Remote 1.
2023-06-01 20:17:50 +02:00
Charles Lombardo faa2b28e6b
Merge pull request #11835 from JosJuice/android-analytics-race
Android: Don't show analytics dialog for destroyed activity
2023-05-28 17:14:36 -04:00
Joshua de Reeper cf3e8714eb Android: Add Hashmap to IDCache 2023-05-28 19:01:21 +12:00
Joshua de Reeper f8abc2c0e6 Android: Infinity Base UI
Add a UI option for the Infinity Base within the Android Emulation Activity
2023-05-28 19:01:21 +12:00
JosJuice 8a78538b2d Android: Don't show analytics dialog for destroyed activity
Should fix one of the reported crashes on Google Play. The issue can
happen if you leave the activity during directory initialization.
2023-05-22 11:10:13 +02:00
Admiral H. Curtiss 6a339cbdb3
IOS/ES: Split ESDevice into ESCore and ESDevice.
ESCore implements the core functionality that can also be used outside of emulation. ESDevice implements the IOS device and is only available during emulation.
2023-05-15 20:41:05 +02:00
Mai 1a2dcc53f2
Merge pull request #11742 from K0bin/document-provider-2
Android: Document Provider improvements
2023-04-16 04:21:33 -04:00
Robin Kertels 57ed5320b5
Android: Fix various issues with the DocumentProvider
Fixes copying & deleting folders and copy conflict handling.
2023-04-15 20:53:01 +02:00
Lioncash e4caace6bb Common/IniFile: Move interface into Common namespace
Gets this out of the global namespace and into the Common namespace
2023-04-13 10:19:28 -04:00
Robin Kertels 1596b13743
Android: Give Debug and Benchmark builds unique names
on the launcher and for the DocumentsProvider
2023-04-08 15:56:44 +02:00
Charles Lombardo 15be899580
Merge pull request #11689 from K0bin/android-open-user-folder
Android: Make button in the settings open user folder
2023-03-29 10:53:48 -07:00
Robin Kertels ee563189fd
Android: Adjust user data text to match DocumentProvider 2023-03-26 20:32:43 +02:00
Admiral H. Curtiss 9217a9eba4
JitInterface: Refactor to class, move to System. 2023-03-26 14:38:07 +02:00
Robin Kertels 43d346aba4
Android: Open DocumentProvider directly when tapping the File Manager button 2023-03-24 00:33:42 +01:00
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