Age | Commit message (Collapse) | Author |
|
Exporting still won't be allowed on an empty save directory.
|
|
|
|
android: Screen orientation and aspect ratio fixes
|
|
|
|
|
|
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.
|
|
Could cause crashes on API 33+ devices
|
|
|
|
Before the viewLifecycleOwner wasn't ready and would cause a crash
|
|
general: Remove uncaught usages of C++ string number conversions
|
|
|
|
android: Return the correct status code on emulation stop
|
|
android: Use resource as shortcut intermediary
|
|
|
|
android: Don't reinitialize settings on emulation start
|
|
Fixes issue where the shortcut icon would appear cropped on certain devices
|
|
android: Fix emulation to settings navigation args
|
|
Config is already initialized on application start
|
|
|
|
|
|
|
|
|
|
|
|
Used by the Super Mairo 3D All-Stars collection.
|
|
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.
|
|
|
|
|
|
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.
|
|
|
|
|
|
android: Settings rework
|
|
|
|
Certain settings have specific defaults for Android only. This lets us reflect them in the Kotlin side with very little code.
|
|
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.
|
|
|
|
Enables and disables editing on settings that rely on other boolean settings.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
Could cause unnecessary configuration change when setting an orientation other than "Landscape"
|
|
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.
|
|
general,config-qt: Present Console Mode as an enum with separate options in game properties
|
|
|
|
android: jni: ensure NCAs from loaded filepath are registered in manual content provider
|
|
android: Search game directory recursively
|
|
|
|
content provider
|
|
|