Charles Lombardo
1ed340f317
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.
2 years ago
Liam
79e055318c
vk_present_manager: recreate surface on any surface loss
2 years ago
Charles Lombardo
2a67cc8a66
android: Use application context for all FileUtil functions
2 years ago
Charles Lombardo
3a1e8ce888
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.
2 years ago
Charles Lombardo
95c131060b
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.
2 years ago
Charles Lombardo
8d16a74198
android: Don't update views if binding is null in onConfigurationChanged
2 years ago
Charles Lombardo
7bde8691f2
android: Don't wait for post to update input overlay visibility
2 years ago
Charles Lombardo
3d9fd80496
android: Close activity with toast if emulation has no game
2 years ago
Charles Lombardo
92a02ec0b5
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.
2 years ago
Charles Lombardo
982fe27279
android: Remove ability to install xci files
2 years ago
Charles Lombardo
ed61a7a22a
android: Adjust failure dialogs for user data and firmware installers
2 years ago
Charles Lombardo
c44545c6d2
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.
2 years ago
Charles Lombardo
8c7d6c0675
android: Refactor zip code into FileUtil
2 years ago
Charles Lombardo
07d7c5b927
android: Use a different string for the content install dialog
2 years ago
Charles Lombardo
33b0150496
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.
2 years ago
Charles Lombardo
863cbaaeb0
android: Consolidate installers to one fragment
This also allows save imports to happen without starting a game at first.
2 years ago
Charles Lombardo
1606e702c5
android: Prevent click ripple from appearing on loading card
2 years ago
Charles Lombardo
b7f8339347
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.
2 years ago
Charles Lombardo
df8de8b260
android: Prevent nav bar shade from laying out across screen
2 years ago
Charles Lombardo
6147477bbd
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.
2 years ago
Charles Lombardo
4e485766bd
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.
2 years ago
Charles Lombardo
6315cb8010
android: Adjust valid user data check
2 years ago
Charles Lombardo
68068a8113
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.
2 years ago
Charles Lombardo
e6c468f8a4
Revert "android: Allow save imports always"
2 years ago
Charles Lombardo
93ab5df3ee
android: Remove unused strings related to the save manager
2 years ago
Charles Lombardo
e68fb0a884
android: Allow importing saves even if no saves are found
Exporting still won't be allowed on an empty save directory.
2 years ago
Charles Lombardo
a6a0aaa013
android: Add import/export buttons for user data
2 years ago
Charles Lombardo
eac616b224
android: Ignore validation layers library in git
2 years ago
Charles Lombardo
88b8509c53
android: Don't pause emulation when entering PiP
2 years ago
Charles Lombardo
ff4322ca01
android: Fix showing input overlay in PiP
2 years ago
Charles Lombardo
329403d279
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.
2 years ago
Charles Lombardo
755928ffd1
android: Export PiP receiver on API 33 and later
Could cause crashes on API 33+ devices
2 years ago
Charles Lombardo
2940967210
android: Set up signing config for release builds
2 years ago
Charles Lombardo
6af676e2ce
android: Collect task state once view is created
Before the viewLifecycleOwner wasn't ready and would cause a crash
2 years ago
Charles Lombardo
f6b02d059e
android: Remove settings interface specifically for audio mute
2 years ago
Charles Lombardo
52d7075ae0
android: Return the correct status code on emulation stop
2 years ago
Charles Lombardo
ebcde602e7
android: Use resource as shortcut intermediary
Fixes issue where the shortcut icon would appear cropped on certain devices
2 years ago
Charles Lombardo
136e1f395d
android: Don't reinitialize settings on emulation start
Config is already initialized on application start
2 years ago
Charles Lombardo
003ee32d6d
android: Fix emulation to settings navigation args
2 years ago
Charles Lombardo
e6595bb31d
android: Delay collecting UI state in games fragment
2 years ago
Charles Lombardo
89660a50bf
android: Refactor menu tags to enum
2 years ago
Charles Lombardo
0c2cbd2469
android: Use StateFlow instead of LiveData
3 years ago
lat9nq
a681050e24
android/config: Remove uncaught usage of stoul
2 years ago
FearlessTobi
ff92a0c8f4
am: Implement UserChannel parameters
Used by the Super Mairo 3D All-Stars collection.
2 years ago
Charles Lombardo
3d1a408a99
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.
3 years ago
Charles Lombardo
b737fe66aa
android: Combine LongMessageDialogFragment with MessageDialogFragment
3 years ago
Charles Lombardo
6cd58e9bd3
android: Support dynamic app shortcuts
3 years ago
Charles Lombardo
351caad5db
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.
3 years ago
Charles Lombardo
5b69f2967e
android: Game loading/shutting down indicators
3 years ago
Charles Lombardo
2b09d48329
android: Create custom game icon loader
3 years ago