Charles Lombardo
366f5b80d6
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.
2 years ago
Charles Lombardo
df17162f9c
android: Fix resolving android URIs in native code
2 years ago
Charles Lombardo
8500e7bc8f
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
2 years ago
Charles Lombardo
225df3ff23
android: Use header for EmulationSession
2 years ago
Charles Lombardo
94d24c3b42
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.
2 years ago
Charles Lombardo
a70a3bbcd0
android: Removed unused ControllerMappingHelper
2 years ago
Charles Lombardo
87f3232ae9
android: Release touch on input overlay when opening in-game menu
2 years ago
Charles Lombardo
44e8e8c169
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.
2 years ago
Charles Lombardo
80087ac9dc
android: Break home settings into grid with large screens
2 years ago
Charles Lombardo
a8aaa2674c
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.
2 years ago
Charles Lombardo
fca03a83ef
android: Remove unnecessary flag to extract native libs in AndroidManifest.xml
2 years ago
Charles Lombardo
646a5d1bc1
android: Update dependencies
Updates to androidx navigation, lifecycle, preference, fragment, recyclerview, and core
2 years ago
Charles Lombardo
bacfefe92c
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
2 years ago
Charles Lombardo
75d58610c0
android: Update AGP to 8.1.2
2 years ago
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