t895
87a9dc9489
android: Always use custom settings when launched from intent
2023-12-12 17:25:37 -05:00
t895
5acffe75df
android: Adjust variable name format for native config
2023-12-12 17:25:37 -05:00
t895
ac222ceba2
android: Add game dir entries to FilesystemProvider
...
Allows us to correctly parse update metadata
2023-12-12 17:25:37 -05:00
t895
f9d4827102
android: Fix games list loading thread safety
...
Previously we relied on a stateflow for reloading state. Now we use an atomic boolean.
2023-12-12 17:25:37 -05:00
t895
7ea7c72dde
android: Collect latest information for games list
2023-12-12 17:25:37 -05:00
t895
809230f634
android: Remove global save import/exporter UI
...
The original implementation exposed here was fundamentally broken where it would not export or import all of your saves depending on your user profile configuration
2023-12-12 17:25:37 -05:00
t895
698c854d5b
android: Compare all properties between games in DiffCallback
2023-12-12 17:25:37 -05:00
t895
ca5b135ddf
android: Expose MemoryUtil size formatting function
2023-12-12 17:25:37 -05:00
t895
dbddc627d4
android: Add JNI initialization information for Game class
...
Unused in this PR, but will be useful later
2023-12-12 17:25:37 -05:00
t895
f2eb3c579f
android: Add per-game drivers
2023-12-12 17:25:37 -05:00
t895
2fce812026
android: Add per-game settings
2023-12-12 17:25:36 -05:00
t895
e975f3cde9
android: Add Game properties
...
This commit has the UI for viewing a game's properties on long-press and some links to useful tools like
- Game info
- Shortcut to settings (global in this commit)
- Addon manager with installer
- Save data manager
- Option to clear all save data
- Option to clear shader cache
2023-12-12 17:25:36 -05:00
t895
70c3d36536
android: Refactor settings to expose more options
...
In AbstractSetting, this removes the category, androidDefault, and valueAsString properties as they are no longer needed and have replacements. isSwitchable, global, and getValueAsString are all exposed and give better options for working with global/per-game settings.
2023-12-12 17:25:36 -05:00
Liam
bd59934350
nce: implement instruction emulation for misaligned memory accesses
2023-12-10 18:23:42 -05:00
german77
a22a025c5b
core: Use single instance of profile manager
2023-12-10 11:29:43 -06:00
t895
a53cd2854e
android: Listen for directory selection in viewmodel
...
Fixes broken game directory selection setup flow
2023-12-08 22:02:04 -05:00
t895
08be9cff0f
android: Don't reload filesystem on update install
2023-12-01 20:19:28 -05:00
liamwhite
57a391e71d
Merge pull request #12074 from GPUCode/yuwu-on-the-metal
...
Implement Native Code Execution (NCE)
2023-11-30 09:20:55 -05:00
liamwhite
aded28f276
Merge pull request #12204 from t895/config-migration
...
android: Multi directory UI
2023-11-29 12:34:09 -05:00
t895
7dddf5cb3c
android: Save global settings in onStop
2023-11-27 23:46:30 -05:00
t895
b8f66c9412
android: Multi directory UI
2023-11-27 23:46:29 -05:00
german77
de58618421
android: input: Flip abxy on backbone labs controllers
2023-11-25 18:22:03 -06:00
german77
b5bde8451c
android: input: Flip abxy on redmagic controllers
2023-11-25 10:53:59 -06:00
GPUCode
9ff8d0f3e6
Address more review comments
2023-11-25 00:47:43 -05:00
Liam
20de0ddf1f
android: show current backend in fps overlay
2023-11-25 00:47:36 -05:00
GPUCode
8fab363237
android: Add cpu bakend gui toggle
2023-11-25 00:47:28 -05:00
t895
e637ec0c38
android: Rework config lifecycle
...
Exposes options for initializing, unloading, reloading, and saving settings that let us update the config much more granularly based on what's happening in the UI.
2023-11-21 01:58:13 -05:00
t895
e744c06f61
android: Remove ini4j
2023-11-21 01:58:13 -05:00
t895
aa20311969
general: Remove inih
2023-11-21 01:58:13 -05:00
t895
da14c7b8e4
config: Unify config handling under frontend_common
...
Replaces every way of handling config for each frontend with SimpleIni. frontend_common's Config class is at the center where it saves and loads all of the cross-platform settings and provides a set of pure virtual functions for platform specific settings.
As a result of making config handling platform specific, several parts had to be moved to each platform's own config class or to other parts. Default keys were put in platform specific config classes and translatable strings for Qt were moved to shared_translation. Default hotkeys, default_theme, window geometry, and qt metatypes were moved to uisettings. Additionally, to reduce dependence on Qt, QStrings were converted to std::strings where applicable.
2023-11-21 01:58:13 -05:00
liamwhite
00dcf69ce8
Merge pull request #12093 from t895/zip-intent
...
android: Use file picker intent for save exporter
2023-11-20 09:38:44 -05:00
liamwhite
1ea0890a36
Merge pull request #12092 from t895/recent-games-default
...
android: Select recently played games by default in search tab
2023-11-20 09:38:36 -05:00
t895
82a4a67f6b
android: Use file picker intent for save exporter
2023-11-19 17:52:53 -05:00
t895
8e93a9a9ef
android: Use path instead of programId for recently added / played key
2023-11-19 16:00:41 -05:00
t895
23c1f7c72f
android: Select recently played games by default in search tab
2023-11-19 15:57:05 -05:00
t895
d3ed771f39
android: Allow up to 400% for the limit speed percent setting
2023-11-19 15:36:25 -05:00
t895
e2be180136
android: Disable PiP by default
2023-11-15 10:30:43 -05:00
liamwhite
24548b1f5c
Merge pull request #12034 from t895/fps-outline
...
android: Add drop shadow to FPS counter
2023-11-14 18:20:24 -05:00
t895
fcd54c6479
android: Don't enter PiP during startup or shutdown
2023-11-14 18:11:38 -05:00
t895
08296f151e
android: Add drop shadow to FPS counter
...
Also let the style control the text size
2023-11-14 17:53:40 -05:00
t895
4d0b7f8496
android: Use suspend function for creating dynamic shortcuts
...
If the coil loader ever got stuck when creating a dynamic shortcut icon, the app would freeze. This would happen most notably when booting nca format games. This pushes that process to a separate coroutine that can be cancelled by the main activity's lifecycle.
2023-11-14 10:57:00 -05:00
liamwhite
0047d8a01e
Merge pull request #12014 from t895/shrink-logo
...
android: Shrink branding images
2023-11-13 09:12:16 -05:00
liamwhite
efc0187537
Merge pull request #12015 from t895/remove-auto
...
android: Remove "auto" region option
2023-11-13 09:12:07 -05:00
t895
4aac971864
android: Use the same transition animation between every fragment in settings
...
The animation that I used for entering search was prone to weird visual bugs and could appear visually jarring. This just makes things appear more consistent.
2023-11-12 21:36:51 -05:00
t895
6c93cdffb1
android: Use more padding on top of each settings header
2023-11-12 21:36:51 -05:00
t895
470714e2d1
android: Remove dividers between each setting
2023-11-12 21:36:51 -05:00
t895
6b888b0fa8
android: Add icons and descriptions to the first-level advanced settings page
...
Additionally adjusts padding to place the icons in-line with the back button in the top app bar and makes the text for normal settings appear in-line with the expanded top app bar title.
2023-11-12 21:36:50 -05:00
t895
1a1393dad7
android: Remove general section from settings
...
Limit speed options were moved to system, cpu accuracy was moved to debug, and PiP was moved to graphics.
2023-11-12 19:08:57 -05:00
t895
55412962c0
android: Remove "auto" region option
...
This doesn't exist and if you clicked it, your region would be set to Taiwan.
2023-11-12 15:45:42 -05:00
t895
d920da2631
android: Add a landscape-specific layout to the about page
...
Moves the logo to the side to fit more information on screen
2023-11-12 13:56:42 -05:00
t895
ff72bf2cb2
android: Shrink logo in about page
2023-11-12 13:56:13 -05:00
t895
4efb9763d9
android: Shrink logo in settings tab
...
Adjusts padding between the cards and logo to fit appropriately
2023-11-12 13:55:20 -05:00
t895
c600bc8652
android: Fix top app bar tint being cut off in the about fragment
...
Adjust margin on the toolbar, not the app bar
2023-11-12 13:54:31 -05:00
t895
09f993899e
android: Hide loading animation on first frame
2023-11-09 22:27:40 -05:00
liamwhite
ca1dd1862b
Merge pull request #11972 from t895/fps-counter-adjustments
...
android: FPS counter adjustments
2023-11-06 11:09:59 -05:00
Charles Lombardo
5191465b0a
android: Simplify FPS counter padding
2023-11-05 18:34:27 -05:00
Charles Lombardo
50c604f37f
android: Color the FPS counter white
2023-11-05 18:29:00 -05:00
Charles Lombardo
9543adf072
android: Always update FPS counter
2023-11-04 00:04:20 -04:00
Charles Lombardo
036d2686af
android: Don't reload log/system after loading firmware/backup
2023-11-03 22:49:31 -04:00
Charles Lombardo
0a83047368
android: Log more system information during startup
...
Logs device manufacturer/model, SoC manufacturer/model where available, and the total system memory
2023-11-03 15:52:01 -04:00
Charles Lombardo
9bb8ac7cb6
android: Fix fetching system memory size from MemoryUtil
...
We weren't rounding up the value at a unit before (GB, MB, etc) we were rounding up the total bytes and that would do nothing. This fixes that, and the check for total system memory during first emulation start where we tried to check the required system memory against 1 gigabyte.
2023-11-03 15:51:17 -04:00
Charles Lombardo
b3a1f793c3
android: Update surface parameters on emulation start
...
This adds a quick update that notifies the render surface if there was a change between surface creation and emulation starting.
2023-11-03 13:31:06 -04:00
liamwhite
57c8dcfd77
Merge pull request #11942 from t895/log-version
...
android: Adjust log lifecycle
2023-11-01 15:45:53 -04:00
Charles Lombardo
398e881428
android: Adjust log lifecycle
...
Now logging will start when the frontend starts like qt does. This also adjusts the share log button to follow where we share the current log if we just returned from a game or return the old log if we haven't started a game yet.
2023-11-01 14:41:19 -04:00
Charles Lombardo
92418e909f
android: Use yuzu logging system
...
Now anything that's logged in the frontend will be printed into the log file
2023-11-01 14:41:19 -04:00
Charles Lombardo
344162db75
android: Default to player number 0 if we get an input from an unrecognized controller
2023-11-01 13:10:51 -04:00
Charles Lombardo
5872c7d420
android: Adjust driver manager source string
2023-11-01 00:18:20 -04:00
Charles Lombardo
2b6edd3efd
android: Reorganize settings tab
2023-11-01 00:17:38 -04:00
Charles Lombardo
97b4ca1d01
android: Auto-generate locale config
2023-10-31 22:07:44 -04:00
Charles Lombardo
1d7ff850d6
android: Update translations from transifex
2023-10-31 22:07:43 -04:00
liamwhite
7e284809de
Merge pull request #11931 from t895/applet-launcher
...
android: Applet launcher UI
2023-10-31 16:55:57 -04:00
Charles Lombardo
133788d0d4
android: Initialize filesystem components during application start
2023-10-31 14:41:40 -04:00
Charles Lombardo
e8cb8b2668
android: Implement applet launcher
2023-10-31 14:41:40 -04:00
liamwhite
ab3e3c11af
Merge pull request #11925 from t895/controller-fix
...
android: Fix controllers stuck on player 2
2023-10-31 09:47:42 -04:00
Charles Lombardo
f7755df2af
android: Reorder controller indexes and only use controllers
...
Before we could ignore controller inputs by forwarding them to player two if a non-controller was connected before and recognized as an input device.
2023-10-30 21:38:51 -04:00
liamwhite
c60204e255
Merge pull request #11922 from t895/simplify-card-layout
...
android: Simplify game card layout
2023-10-30 15:32:45 -04:00
Charles Lombardo
e867768316
android: Simplify game card layout
...
Using a material card view to shape the image was just a waste of a layout pass. A shapeable image view does what we want and does it faster.
2023-10-30 13:28:52 -04:00
Charles Lombardo
f04bc172ae
android: FileUtil: Add option to suppress log for native exists() calls
...
We often check for the existence of files that only exist in ExeFS so this can spam logcat with useless messages when scanning for games.
2023-10-30 11:38:10 -04:00
Charles Lombardo
585b6e9d46
android: Fix resolving android URIs in native code
2023-10-30 11:38:10 -04:00
Charles Lombardo
a9e29a3972
android: Refactor game metadata collection to new file
...
This also removes irrelevant data and adds new information from/to the Game data class and RomMetadata struct
2023-10-30 11:38:09 -04:00
Charles Lombardo
1e61c3e1e7
android: Use header for EmulationSession
2023-10-30 11:28:23 -04:00
liamwhite
3e0da4f698
Merge pull request #11916 from t895/focus-fix
...
android: Release touch on input overlay when opening in-game menu
2023-10-30 09:59:53 -04:00
liamwhite
789c16305d
Merge pull request #11915 from t895/startup-freeze
...
android: Move game deserialization to another thread
2023-10-30 09:59:45 -04:00
Charles Lombardo
70be45c992
android: InputHandler: Convert to object
...
This doesn't need to be an instance of a class because it doesn't hold any data. It's just all helper functions.
2023-10-30 01:20:27 -04:00
Charles Lombardo
9b3c64f4a4
android: Removed unused ControllerMappingHelper
2023-10-30 01:20:27 -04:00
Charles Lombardo
2c1d850b46
android: Release touch on input overlay when opening in-game menu
2023-10-29 21:42:47 -04:00
Charles Lombardo
2581590023
android: Move game deserialization to another thread
...
Deserializing games from the cache in shared preferences was done on the main thread and could cause a stutter on startup.
2023-10-29 21:29:32 -04:00
Charles Lombardo
a5aa5876b4
android: Break home settings into grid with large screens
2023-10-29 13:47:41 -04:00
Charles Lombardo
3e4edbe007
Merge pull request #11767 from t895/gradle-stuff
...
android: Update dependencies
2023-10-13 15:08:47 -04:00
Charles Lombardo
82c845dc2f
android: Fix incorrect assumption for driver installation validation
...
The driver was assumed to be installed at this point before I made a refactor. Now we just check if the copy operation was successful and delete the file if it fails.
2023-10-13 13:50:38 -04:00
Charles Lombardo
9b961dddb4
android: Remove unnecessary flag to extract native libs in AndroidManifest.xml
2023-10-13 12:55:41 -04:00
Charles Lombardo
224b6036a4
android: Update dependencies
...
Updates to androidx navigation, lifecycle, preference, fragment, recyclerview, and core
2023-10-13 12:55:41 -04:00
Charles Lombardo
1591923f91
android: Update ndk to 26.1.10909125
...
The new ndk uses LLVM 17.0.2 so we can remove the LLVM download and libc++ options for the android builds
2023-10-13 12:55:41 -04:00
liamwhite
c8602e1b1f
Merge pull request #11649 from t895/driver-manager
...
android: Driver manager
2023-10-13 09:28:53 -04:00
Charles Lombardo
a5fb9de6fa
android: Add GPU driver management fragment
...
Implements a GPU driver manager that saves all drivers to the user data directory and asynchronously installs drivers when they're needed.
2023-10-12 17:17:21 -04:00
Liam
b32940d3ea
vk_present_manager: recreate surface on any surface loss
2023-10-02 19:07:18 -04:00
Charles Lombardo
26f9d1f122
android: Use application context for all FileUtil functions
2023-10-01 15:56:02 -04:00
liamwhite
4487c165c8
Merge pull request #11604 from t895/only-install-nsp
...
Frontend: Remove ability to install xci files
2023-09-28 09:35:16 -04:00
Charles Lombardo
882859bc78
Merge pull request #11613 from t895/fragment-exception-change
...
android: Various play store fixes
2023-09-27 18:08:54 -04:00
Charles Lombardo
22284fc504
android: Prevent crash when trying to change pages in setup fragment
...
Sometimes when we want to change the current setup page, the current view isn't available and we try to alter the current view. This adds a guard to prevent that issue.
2023-09-27 13:40:09 -04:00
Charles Lombardo
d70f18b87b
android: Prevent setup fragment crash in background
...
Sometimes during onSaveInstanceState, the SetupFragment would crash the app in the background if we tried to store the state of a view.
2023-09-27 13:40:09 -04:00
Charles Lombardo
ec388622ff
android: Don't update views if binding is null in onConfigurationChanged
2023-09-27 13:40:09 -04:00
Charles Lombardo
6a425e95cb
android: Don't wait for post to update input overlay visibility
2023-09-27 13:40:09 -04:00
Charles Lombardo
1fdfedc43e
android: Close activity with toast if emulation has no game
2023-09-27 13:40:09 -04:00
Charles Lombardo
18b240c071
Merge pull request #11616 from t895/save-error
...
android: Correctly reload settings file during reset
2023-09-27 10:51:05 -04:00
Charles Lombardo
0aa99b8f47
Merge pull request #11603 from t895/consolidate-installs
...
android: Consolidate installers to one fragment
2023-09-27 10:50:38 -04:00
Charles Lombardo
481f91cc34
android: Correctly reload settings file during reset
...
Previously the config file wasn't being recreated when resetting all settings. Now just call into native code to recreate the settings file and reload all defaults.
2023-09-27 01:15:57 -04:00
Charles Lombardo
a29e26200f
android: Remove ability to install xci files
2023-09-26 18:56:19 -04:00
Charles Lombardo
cf44be1de6
android: Adjust failure dialogs for user data and firmware installers
2023-09-26 13:59:46 -04:00
Charles Lombardo
95a31b8887
android: Fix cancel behavior on indeterminate progress dialog fragment
...
The dialog would previously dismiss immediately when it should stay alive until the task is cancelled completely.
2023-09-26 13:27:28 -04:00
Charles Lombardo
c8673a16bb
android: Refactor zip code into FileUtil
2023-09-26 13:26:20 -04:00
Charles Lombardo
3491ba4a06
android: Use a different string for the content install dialog
2023-09-26 00:26:46 -04:00
Charles Lombardo
5326ea63e5
android: Fix case bug for installing game content
...
The C++ side never made the filename lowercase when checking the extension. This just passes the pre-prepared extension to have it checked.
2023-09-26 00:25:20 -04:00
Charles Lombardo
e9e6296893
android: Consolidate installers to one fragment
...
This also allows save imports to happen without starting a game at first.
2023-09-25 23:48:28 -04:00
Charles Lombardo
4e855be38b
Merge pull request #11594 from t895/rotation-fix
...
android: Prevent nav bar shade from laying out across screen
2023-09-25 20:57:33 -04:00
Charles Lombardo
3d03e8b806
android: Prevent click ripple from appearing on loading card
2023-09-25 18:33:21 -04:00
Charles Lombardo
ff9d8dd0b3
android: Remove bottom attribute from navigation view
...
Using the "bottom" attribute would break the navigation view and prevent things like rounded corners and lock modes from being applied properly.
2023-09-25 18:31:23 -04:00
Charles Lombardo
38b939b2e9
android: Prevent nav bar shade from laying out across screen
2023-09-25 18:10:58 -04:00
Charles Lombardo
0d7d3d938c
android: Use measured size of view for input overlay bounds
...
Even after updating the androidx window library, this did not fix the issue for all devices. This ensures that the measured size of the overlay will be used instead of a potentially larger one seen by androidx.
2023-09-24 22:18:38 -04:00
Charles Lombardo
5269a46399
android: Use smaller read buffer size for exporting user data
...
The File.readBytes() extension attempts to load an entire file into a byte array. This would cause crashes when loading huge files into memory.
2023-09-22 16:51:48 -04:00
Charles Lombardo
f3bc7354b1
android: Adjust valid user data check
2023-09-22 12:05:44 -04:00
Charles Lombardo
c619199bb4
Merge pull request #11564 from t895/overlay-inset-fix
...
android: Update androidx window library to 1.2.0-beta03
2023-09-21 19:15:36 -04:00
Charles Lombardo
703bf7cfce
android: Update androidx window library to 1.2.0-beta03
...
Fixes an issue with the input overlay on certain devices where the controls would appear offscreen.
2023-09-21 17:36:14 -04:00
Charles Lombardo
c644c1a90a
Revert "android: Allow save imports always"
2023-09-21 02:57:28 -04:00
Charles Lombardo
a85325f56a
android: Remove unused strings related to the save manager
2023-09-20 15:01:03 -04:00
Charles Lombardo
bdb4fd208f
android: Allow importing saves even if no saves are found
...
Exporting still won't be allowed on an empty save directory.
2023-09-20 15:00:34 -04:00
Charles Lombardo
1e740df9b8
android: Add import/export buttons for user data
2023-09-19 15:54:47 -04:00
liamwhite
df56ecc318
Merge pull request #11542 from t895/touch-offset-fix
...
android: Screen orientation and aspect ratio fixes
2023-09-19 09:25:09 -04:00
Charles Lombardo
fd09784231
android: Don't pause emulation when entering PiP
2023-09-19 00:31:43 -04:00
Charles Lombardo
3b612cff28
android: Fix showing input overlay in PiP
2023-09-19 00:31:43 -04:00
Charles Lombardo
32d65fc8de
android: Properly update emulation surface
...
Previously the emulation surface wasn't being updated during configuration changes and only during specific view events. This would break input and the screen dimensions after each orientation/aspect ratio change. Now a new surface is provided every time and the display dimensions are updated as needed.
2023-09-19 00:31:43 -04:00
Charles Lombardo
e3c546a1ed
android: Export PiP receiver on API 33 and later
...
Could cause crashes on API 33+ devices
2023-09-17 17:33:33 -04:00
Charles Lombardo
67eeb05692
android: Set up signing config for release builds
2023-09-17 01:22:16 -04:00
Charles Lombardo
c484a61515
android: Collect task state once view is created
...
Before the viewLifecycleOwner wasn't ready and would cause a crash
2023-09-16 17:15:20 -04:00
liamwhite
c05ea35f78
Merge pull request #11492 from lat9nq/c-numeric-conversions
...
general: Remove uncaught usages of C++ string number conversions
2023-09-16 11:40:03 -04:00
Charles Lombardo
832a2fcc69
android: Remove settings interface specifically for audio mute
2023-09-14 23:46:19 -04:00
Charles Lombardo
958bed4545
Merge pull request #11507 from t895/emulation-stop-fix
...
android: Return the correct status code on emulation stop
2023-09-14 23:22:00 -04:00
Charles Lombardo
0c688b0bf5
Merge pull request #11506 from t895/icon-fix
...
android: Use resource as shortcut intermediary
2023-09-14 23:21:45 -04:00
Charles Lombardo
7e2bd395bc
android: Return the correct status code on emulation stop
2023-09-14 23:08:06 -04:00
Charles Lombardo
19053ab631
Merge pull request #11505 from t895/config-patch
...
android: Don't reinitialize settings on emulation start
2023-09-14 22:20:45 -04:00
Charles Lombardo
6481f4e937
android: Use resource as shortcut intermediary
...
Fixes issue where the shortcut icon would appear cropped on certain devices
2023-09-14 22:19:08 -04:00
Charles Lombardo
d1deff6b07
Merge pull request #11504 from t895/emu-args
...
android: Fix emulation to settings navigation args
2023-09-14 21:25:58 -04:00
Charles Lombardo
e8aaab2fc1
android: Don't reinitialize settings on emulation start
...
Config is already initialized on application start
2023-09-14 21:25:17 -04:00
Charles Lombardo
21b133de40
android: Fix emulation to settings navigation args
2023-09-14 20:24:43 -04:00
Charles Lombardo
b394389170
android: Delay collecting UI state in games fragment
2023-09-14 20:02:48 -04:00
Charles Lombardo
8baed5d95d
android: Refactor menu tags to enum
2023-09-14 15:18:56 -04:00
Charles Lombardo
4a3cbf0021
android: Use StateFlow instead of LiveData
2023-09-14 15:18:56 -04:00
lat9nq
85e1754728
android/config: Remove uncaught usage of stoul
2023-09-13 13:36:25 -04:00
FearlessTobi
87c0ba129c
am: Implement UserChannel parameters
...
Used by the Super Mairo 3D All-Stars collection.
2023-09-10 15:39:25 -04:00
Charles Lombardo
50d4e0f4f7
android: Fix game content installer
...
Before this would run on the main thread and freeze the device. Additionally this fixes the result dialog not appearing if a config change happens during the installation by getting the activity's fragment manager when needed.
2023-08-30 19:05:33 -04:00
Charles Lombardo
d833fc383d
android: Combine LongMessageDialogFragment with MessageDialogFragment
2023-08-30 18:02:16 -04:00
Charles Lombardo
b48dbb18f2
android: Support dynamic app shortcuts
2023-08-30 16:26:10 -04:00
Charles Lombardo
5445e974e0
android: Separate emulation states from emulation mutex
...
Emulation states are repeatedly checked by input and performance stats. During startup and shutdown, this could lead to a long halt on the UI thread because the call to IsRunning will be waiting on the emulation mutex to be unlocked. Using atomics should replace the existing functionality without causing problems.
2023-08-30 15:19:23 -04:00
Charles Lombardo
b0a96d5216
android: Game loading/shutting down indicators
2023-08-30 15:19:23 -04:00
Charles Lombardo
270f430f70
android: Create custom game icon loader
2023-08-30 10:19:05 -04:00
Charles Lombardo
44bce11853
Merge pull request #11380 from t895/settings-integration
...
android: Settings rework
2023-08-29 22:20:59 -04:00
Charles Lombardo
4701eea646
android: Don't reload settings when stopping settings activity
2023-08-29 21:44:18 -04:00
Charles Lombardo
21ad5f5cc5
android: Add optional androidDefault property to settings
...
Certain settings have specific defaults for Android only. This lets us reflect them in the Kotlin side with very little code.
2023-08-29 19:42:42 -04:00
Charles Lombardo
45280a0342
android: Proper state restoration on settings dialogs
...
All dialog code (except for the Date/Time ones) has been extracted out into a generic settings dialog fragment that handles everything through a viewmodel. State for each dialog will now be retained and dialogs will stay shown through configuration changes.
I won't be changing the current state of the date and time dialog fragments until Google decides to make their classes non-final or if/when we migrate to Jetpack Compose.
2023-08-29 19:42:42 -04:00
Charles Lombardo
fd5c7b21dd
android: Add search for settings
2023-08-29 19:42:42 -04:00
Charles Lombardo
d786d19880
android: Implement paired settings
...
Enables and disables editing on settings that rely on other boolean settings.
2023-08-29 19:42:41 -04:00
Charles Lombardo
369d06292f
android: Prevent infinite switch toggle loop
...
If something like a lifecycle event happens when this switch is toggled (Ex. whenever the black backgrounds switch is toggled), this could move the switch from the default position and trigger the checked changed listener and restart the loop. Here I just removed the listener at the start so we recycle the view properly still, set the checked state and then add the new listener.
2023-08-29 19:42:41 -04:00
Charles Lombardo
95a939a49f
android: Migrate settings to navigation component
...
Consolidates all of the settings components to the fragment and activity with no interfaces and only the settings fragment presenter. This also includes new material animations and new viewmodel usage to prevent the fragment and activity directly interacting with one another.
2023-08-29 19:42:41 -04:00
Charles Lombardo
f5e6b12c74
android: Trim settings enums and items
...
Take advantage of the new settings interface to reduce the amount of code we need for each setting item. Additionally make all settings items non-null to improve brevity.
2023-08-29 19:40:18 -04:00
Charles Lombardo
6c8f2b355a
android: Expose interface for getting settings from native code
...
Completely removes code related to parsing the settings file on the java side. Now all settings are accessed via NativeConfig.kt and config.cpp has been modified to be closer to the core counterpart. Since the core currently uses QSettings, we can't remove reliance from Wini yet. This also includes simplifications to each settings interface to get closer to native code and prepare for per-game settings.
2023-08-29 19:40:17 -04:00
Charles Lombardo
2dbe067d74
android: Support intents to emulation activity
2023-08-29 02:57:20 -04:00
Charles Lombardo
037f82025c
android: Don't set a default emulation orientation
...
Could cause unnecessary configuration change when setting an orientation other than "Landscape"
2023-08-27 00:19:03 -04:00
Charles Lombardo
338d6f29b1
android: Properly adjust emulation surface aspect ratio
...
Previously the emulation surface wouldn't respond properly to orientation changes. This would result in the screen appearing stretched when starting in one orientation and switching to another.
The code for calculating the bounds of the view have been changed to match the expected behavior now. Before the view would just match parent in height and width. Now instead of using setLeftTopRightBottom (which is intended to be used for animations) we pass newly calculated bounds for the view into super. Now the view bounds match the emulation output.
This also means that we don't need the overload for the SettingsActivity to launch it using an ActivityResultLauncher. We can just update the view in onResume.
2023-08-27 00:16:53 -04:00
liamwhite
6c4abd23be
Merge pull request #11356 from lat9nq/console-mode-pg
...
general,config-qt: Present Console Mode as an enum with separate options in game properties
2023-08-26 19:15:00 -04:00
Charles Lombardo
4e71628097
android: Use appCategory to specify the app is a game
2023-08-25 17:17:48 -04:00
bunnei
92e6ff30a1
Merge pull request #11357 from liamwhite/lime-vfs
...
android: jni: ensure NCAs from loaded filepath are registered in manual content provider
2023-08-25 13:04:22 -07:00
liamwhite
ccd163ab2c
Merge pull request #11352 from t895/recurse-subfolders
...
android: Search game directory recursively
2023-08-23 10:20:02 -04:00
Charles Lombardo
182fb83556
android: Set default build variant to mainlineRelWithDebInfo ( #11358 )
2023-08-23 16:12:39 +02:00
Liam
2c4ebeb51d
android: jni: ensure NCAs from loaded filepath are registered in manual content provider
2023-08-22 22:47:25 -04:00
lat9nq
00af46c356
native: Use Docked Mode helper
2023-08-22 22:40:36 -04:00
lat9nq
75f5b3177d
config-android: Translate console mode setting
...
Translates the previous boolean to the enum.
2023-08-22 22:00:28 -04:00
Charles Lombardo
35b77b9599
android: Search game directory recursively
2023-08-22 15:16:20 -04:00
liamwhite
a9f223cd9f
Merge pull request #11346 from t895/ktlint-fix
...
android: lint: Delete generated ktlint folder between builds
2023-08-22 11:30:01 -04:00
Charles Lombardo
1bc832c9b1
android: lint: Delete generated ktlint folder between builds
...
There's a bug in ktlint where it will run into an error if you build the project, delete a source file, and then build again. It will be unable to find the file you deleted and can't recover until these files are deleted. This just deletes those files before every run.
2023-08-21 17:31:13 -04:00
Charles Lombardo
df00da1760
android: Show associated value in home settings ( #11272 )
2023-08-21 22:25:11 +02:00
Charles Lombardo
062113374d
android: Use sensor landscape for landscape mode ( #11337 )
2023-08-21 21:56:12 +02:00
bunnei
bbc6b08fc7
Merge pull request #11273 from t895/setup-completion
...
android: Setup additions
2023-08-14 15:41:35 -07:00
Charles Lombardo
242ce2a0b3
android: Page forward on setup step completion
2023-08-12 20:21:47 -04:00
Charles Lombardo
8ab3685a39
android: Adjust setup fragment layout
...
Fixes padding issues in small and large layouts and allows viewpager to reach into system insets.
2023-08-12 17:02:59 -04:00
Charles Lombardo
8bd0521b58
android: Show complete indicator during setup
2023-08-12 16:53:14 -04:00
Charles Lombardo
64ea5522d3
android: Remove redundant option from slider dialog
...
You can already reset any setting by long pressing the settings item.
2023-08-12 15:45:27 -04:00
Charles Lombardo
798a439eb1
android: Reduce opacity of non-editable settings
2023-08-12 15:42:55 -04:00
Charles Lombardo
786b609151
android: Use string resource for slider value/units
2023-08-12 15:42:54 -04:00
Charles Lombardo
89a2d308c3
android: Display setting value in setting list items
2023-08-12 14:38:46 -04:00
Charles Lombardo
0d4bf53ad9
android: Set switch listener before assigning new value
...
Previously the switch could have its old listener triggered when recycled.
2023-08-12 01:00:42 -04:00
liamwhite
fca7d975fd
Merge pull request #10839 from lat9nq/pgc-plus
...
general: Reimplement per-game configurations
2023-08-02 14:25:52 -04:00
Abandoned Cart
e2ea46f6ef
android: Only label language with language
2023-07-25 10:38:30 -04:00
Liam
4bee333d84
general: reduce use of dynamic_cast
2023-07-21 19:22:14 -04:00
lat9nq
b55a763618
config-android: Update memory layout member name
2023-07-21 10:56:55 -04:00
lat9nq
69bc8ea148
android-config: Update enum labels
2023-07-21 10:56:55 -04:00
lat9nq
ab795fe0e2
(android)config: Clang format
2023-07-21 10:56:55 -04:00
lat9nq
d373cc3d3f
android-config: Adapt settings rework
2023-07-21 10:56:07 -04:00
Valeri Ochinski
50fe45f1e4
android: fix links to re-dumping guides
2023-07-16 20:22:27 +03:00
Charles Lombardo
4b870b28e8
android: Visualize disabled home options
...
Allow for displaying options in the home options that are disabled with messages that explain why they are disabled.
This includes reasoning for the GPU driver installation button.
2023-07-10 22:17:19 -04:00
Charles Lombardo
a6e467cd55
android: Don't prompt to save user data on uninstall
...
While this can be convenient in some scenarios, this will be a big problem for users trying to sideload different APK versions. If they forget the last one they had installed, they could have problems installing a new copy.
2023-07-09 19:02:42 -04:00