Commit Graph

1985 Commits

Author SHA1 Message Date
PabloG02
a6c2699395 Use constants instead of 0666 2023-05-02 13:39:07 +01:00
PabloG02
e7cf7c9dae Change name of zip to {name} (v{version}) [{titleId}] - {saveTime} 2023-05-02 13:39:07 +01:00
PabloG02
dae5469a61 Fix regex 2023-05-02 13:39:07 +01:00
PabloG02
f85ecc23be Change file creation permissions to 0666 2023-05-02 13:39:07 +01:00
PabloG02
71a0033f5b Use the title of the game as the name of the zip.
This zip will have the structure gameTitle.zip/titleId/...
2023-05-02 13:39:07 +01:00
PabloG02
3dbd47082d Make import and export buttons have text 2023-05-02 13:39:07 +01:00
PabloG02
9bcbb3af47 Extract strings 2023-05-02 13:39:07 +01:00
PabloG02
dc36f3d76a Clean layout 2023-05-02 13:39:07 +01:00
PabloG02
5c4973e141 Use coroutines 2023-05-02 13:39:07 +01:00
PabloG02
c57d572936 Show dialog before deleting save 2023-05-02 13:39:07 +01:00
PabloG02
92c6eecfc8 Delete zip after exporting 2023-05-02 13:39:07 +01:00
PabloG02
b24bf9eb91 Make TitleId check more robust 2023-05-02 13:39:07 +01:00
PabloG02
a634bca2d2 Initial implementation of save management 2023-05-02 13:39:07 +01:00
lynxnb
b7548e51cf Use AndroidX use extension function instead of Kotlin built-in one
The Kotlin built-in `use` extension function applies to `AutoCloseable` only, and throws an error if the object it's being called on is not an `AutoCloseable`. This causes `OnScreenView` to fail to inflate on SDK < 31 as it retrieved the current theme primary color with a `TypedArray`, which only implements `AutoCloseable` since SDK 31 (Android 12).
The AndroidX core library provides a `use` extension function that applies to `TypeArray` instead of `AutoCloseable` so the fix is just a simple import.
2023-05-02 12:27:57 +01:00
lynxnb
cce4b3f89a Add OSC recenter sticks option description 2023-05-02 12:27:57 +01:00
lynxnb
563c72afa9 Implement OSC customizable stick activation radius 2023-05-02 12:27:57 +01:00
lynxnb
d86b2ec3e9 Implement OSC stick regions
Stick regions extend the activation area of the sticks to rectangles covering the corresponding half of the screen.
E.g. for the left stick: when any point of the left side of the screen is touched, the stick is repositioned there, and acts as if it was centered in the touched position. When the finger is lifter, the stick is hidden.
2023-05-02 12:27:57 +01:00
lynxnb
32f995165c Use 1.0 as the default OSC button scale value
The default value was previously 1.15.
2023-05-02 12:27:57 +01:00
lynxnb
821cdb8d72 Draw a circle indicator on OSC buttons with toggle mode enabled 2023-05-02 12:27:57 +01:00
lynxnb
7cf45b11b0 Vibrate on OSC roll-over button presses too 2023-05-02 12:27:57 +01:00
lynxnb
655ca8f89b Ignore OSC roll-over events if the button is already pressed 2023-05-02 12:27:57 +01:00
lynxnb
560fcd9442 Implement toggle mode for OSC buttons
When toggle mode is enabled, the button will toggle between the `Pressed` and `Released` state when it's pressed.

Without toggle mode:
ACTION_DOWN -> Pressed
ACTION_UP -> Released
ACTION_DOWN -> Pressed
ACTION_UP -> Released

With toggle mode:
ACTION_DOWN -> Pressed
ACTION_UP -> No event
ACTION_DOWN -> No event
ACTION_UP -> Released
2023-05-02 12:27:57 +01:00
lynxnb
78252fbcbd Show current input values in OnScreenEditActivity
This was made primarily for debugging on-screen controls, but it might be useful to users too.
2023-05-02 12:27:57 +01:00
lynxnb
69fb15ffc9 Improve separation between OSCEditActivity and OSCView
The activity shouldn't access the edit button directly, but should only access data available through the public interface.
2023-05-02 12:27:57 +01:00
lynxnb
7e3d3bd281 Draw a box around disabled OSC buttons in edit mode
The box is also drawn if the alpha is configured too low (<5%).
2023-05-02 12:27:57 +01:00
lynxnb
659e090d38 Enable OSC per-button text and color selection 2023-05-02 12:27:57 +01:00
lynxnb
c7d213c3ea Make the OSC edit panel collapsible
The panel can now be closed to try out the buttons.
2023-05-02 12:27:57 +01:00
lynxnb
3f2fd7a653 Make some properties constant in OnScreenButton
They were initially made variable by mistake
2023-05-02 12:27:57 +01:00
lynxnb
37a2a2fbad Fix inconsistent OSC button movements when using the arrow buttons
A combination of factors caused inconsistent button movements when using the arrow buttons to move it, namely floating point approximation and the round down performed when snapping a button to the grid. Sometimes the layman solution is the best one: adding/subtracting one to the move amount depending on the direction ensures that the button always ends up on a grid line.
2023-05-02 12:27:57 +01:00
lynxnb
1d6b075d5c Draw a selection rectangle around the active button while editing 2023-05-02 12:27:57 +01:00
lynxnb
e91993698f Remove OSC EditMode enum
An enum isn't needed anymore, as there's no state to enumerate anymore.
2023-05-02 12:27:57 +01:00
lynxnb
2556b25ebf Fix OSC incorrect pressed alpha when low values are used
OSC would "light up" when the alpha value was low because of the value being coerced to an arbitrary range. Divide the alpha value by 3 instead.
2023-05-02 12:27:57 +01:00
lynxnb
d69c9f472f Make the OSC control panel draggable 2023-05-02 12:27:57 +01:00
lynxnb
d7e38e9556 Introduce a control panel to edit buttons instead of a fab bar
An unusual big commit, unfortunately needed because none of these changes would make sense nor work individual. A quick list of what have been done follows.
* Introduced a control panel to control buttons replacing the FAB bar
* `ConfigurableButton` and `OnScreenConfiguration` interfaces have been introduced to allow for easier proxying of actions when applying the same changes to all buttons
* Button resize logic has been stripped from the buttons in favor of the new sliders
* General cleanup and renaming of various methods to better reflect their functionality
2023-05-02 12:27:57 +01:00
lynxnb
49de8a8f38 Rework OSC action bar appearance
FABs are now placed on top of a sheet hanging from the top. Actions are now properly enumerated and don't rely on the icon resource ID anymore.
2023-05-02 12:27:57 +01:00
Abandoned Cart
fe4ccd1ee0 Suppress or resolve common warnings 2023-05-02 12:27:06 +01:00
Abandoned Cart
97694e639a Add a Parcelable helper to handle deprecation 2023-05-02 12:27:06 +01:00
Abandoned Cart
96c5b94429 Always resume emulator, even if running
Fixes skyline-emu/skyline#2305
2023-05-02 12:27:06 +01:00
lynxnb
24d4f5e3cd Improve the robustness of the ROMs auto-refresh feature 2023-04-27 19:14:14 +02:00
lynxnb
e6efaf26bc Don't scroll to the top of the game list on adapter changes 2023-04-27 00:31:14 +02:00
lynxnb
caa15f729f Revert setting the app category to game
It was causing unbelievable slow cold app boot times on some devices (e.g. Pixel 6), for no apparent reason.
2023-04-27 00:31:14 +02:00
Dima
bdf73aa20d Fix GetSharedFontInOrderOfPriority
return fonts array size instead of loaded state
2023-04-25 10:20:50 +01:00
Pablo González
8c2b39858d
Add xml for the shader compilation screen (#2255)
* Add xml for the shader compilation screen
* Change ConstraintLayout for LinearLayout and adapt style to MD3
* Change some aspects of the progress indicator and the source of text color
2023-04-23 21:43:48 +02:00
Abandoned Cart
178dbea801 Use the searching text to specify load state 2023-04-22 19:54:04 +01:00
Abandoned Cart
30aee55122 Suppress AppItem serialVersionUID warning 2023-04-22 19:54:04 +01:00
Abandoned Cart
56fd79ff46 Remove the DataItem wrapper on AppItem 2023-04-22 19:54:04 +01:00
Abandoned Cart
c8e0f71bb7 Remove RomFormat as an AppEntry key
There may be a time and place where knowing the format is necessary, but it is not in the list of games being presented to the end-user
2023-04-22 19:54:04 +01:00
Abandoned Cart
fe46213beb Remove "Group Games By Format" option 2023-04-22 19:54:04 +01:00
Abandoned Cart
0b453ca4ed Simplify placeholder for empty items 2023-04-22 19:54:04 +01:00
Abandoned Cart
b82452f8f8 Remove HeaderItem as a DataItem type 2023-04-22 19:54:04 +01:00