Anthony
459d3a8bbd
Add messageBox to proguard-rules.pro ( #10570 )
...
I missed this out from the previous update, oops!
2024-08-20 07:41:52 -07:00
Anthony
8a6fd058b4
Update proguard-rules.pro in line with recent changes
...
Also sort methods and add a note about preserving unused native method nativeGetHint.
2024-08-09 19:18:29 -07:00
Susko3
e3cf20e1cc
Remove `createSDLMainRunnable()` in favour of `main()` to fix multiple issues when providing custom main/runnable code ( #10434 )
...
This allows managed applications (eg. Java, C#) to override main() to their liking.
2024-08-03 06:34:38 -07:00
Sam Lantinga
81f8e6aba6
Added SDL_StartTextInputWithProperties()
...
This allows you to customize the text input so you can have numeric text entry, hidden passwords, etc.
Fixes https://github.com/libsdl-org/SDL/issues/7101
Fixes https://github.com/libsdl-org/SDL/issues/7965
Fixes https://github.com/libsdl-org/SDL/issues/9439
2024-08-02 14:49:37 -07:00
Anonymous Maarten
0c5bb532c3
Remove support for building a SDL3 library from gradle
2024-08-01 17:48:49 +00:00
Anonymous Maarten
349540f73f
Document the new SDL3 Android archive artifact
2024-08-01 17:48:49 +00:00
Sam Lantinga
691cf15e75
Removed the ancient Android audio driver
...
OpenSLES is well supported on Android 4.0 and later.
2024-07-29 08:05:36 -07:00
Anthony
7cd23bfb6a
Respect Android's auto-rotate setting when choosing orientation
2024-07-27 09:38:41 -07:00
Anthony
d6554a9505
Fix running on Android 9 and older
2024-07-25 04:41:43 -07:00
Sam Lantinga
31730bef1a
Fixed running on Android 10 and older (thanks @AntTheAlchemist!)
2024-07-24 13:37:40 -07:00
Anthony
27f86cbe18
Update proguard-rules.pro to include onNativeInsetsChanged
2024-07-24 10:22:45 -07:00
Sam Lantinga
457ca3995c
Added SDL_GetWindowSafeArea()
...
Fixes https://github.com/libsdl-org/SDL/issues/3243
2024-07-23 17:06:04 -07:00
Anonymous Maarten
50ae47af5e
android: create android project in create-android-project.py python script
...
This script supersedes androidbuild.sh, and also supports using a SDL3 prefab archive
2024-07-05 21:12:26 +02:00
Sam Lantinga
a04596c9a7
Added support for the ROG RAIKIRI
2024-07-03 13:54:00 -07:00
Blaž Tomažič
0383333b54
android: add an option to manually pass the context when loading a native library
...
(cherry picked from commit b444e656cd )
2024-06-20 10:38:59 -07:00
Blaž Tomažič
3b5f35138e
android: actually use ReLinker
...
When loading libraries the `SDL.mContext` is still `null`. This results in
relinker code path in `SDL.loadLibrary(...)` always throwing a null exception
and fallbacking to system loader.
Fix it by passing the context explicitly.
(cherry picked from commit 6a2dd96ac7 )
2024-06-20 09:36:17 -07:00
Anonymous Maarten
1a68d846de
Create a functional CMake project using androidbuild.sh
2024-06-18 00:11:44 +02:00
Sam Lantinga
8ab1ffca8a
Fixed requesting USB permission on Android 14 (thanks @ikhoeyZX!)
...
Fixes https://github.com/libsdl-org/SDL/issues/9831
2024-06-17 15:10:33 -07:00
Miku AuahDark
3373667faa
Android: Use SCREEN_ORIENTATION_FULL_USER instead of SCREEN_ORIENTATION_FULL_SENSOR for resizable window.
...
The former will respect user orientation lock setting while the latter does not.
2024-06-17 07:44:05 -07:00
Ryan C. Gordon
38f0214e8a
audio: Refer to audio devices to "playback" and "recording".
...
Fixes #9619 .
2024-06-15 01:08:12 -04:00
Anthony
3c5b1b52ac
Update proguard-rules.pro for recent haptic changes
2024-06-05 14:54:42 -07:00
Sam Lantinga
f879411627
Added support for gamepad rumble on Android
...
Tested with the DualSense controller over Bluetooth on Android 12
Fixes https://github.com/libsdl-org/SDL/issues/7847
2024-06-05 09:53:56 -07:00
mechakotik
8f88c32ca6
android: Default to custom theme in styles.xml
...
Custom theme file exists in project, but is not used by app, which is kinda unintuitive. Using it by default so people who not familiar with Android development won't spend lots of time troubleshooting.
2024-05-31 09:04:06 -07:00
Sam Lantinga
9259d532da
isVRHeadset returns true for Pico headsets
2024-05-23 17:39:06 -07:00
Anonymous Maarten
e10666397e
ci: build simple Android SDL app using gradle
2024-05-22 20:19:18 +02:00
Sam Lantinga
9b7f88e512
Pass the VR controller "back" button to the application on the Oculus Quest
2024-05-13 21:01:04 -07:00
Miku AuahDark
86fada6faa
Android: Implement open and save file dialog.
2024-05-06 09:33:48 -07:00
Miku AuahDark
33ae7e38d6
Android: Allow SDL_IOFromFile to open content:// URI. ( #9696 )
2024-05-06 09:05:49 -07:00
Sam Lantinga
d95f5bad24
Updated to version 3.1.2 for the preview release
2024-05-01 09:34:25 -07:00
Susko3
5045680628
Override `onTrimMemory()` instead of `onLowMemory()`
...
https://developer.android.com/reference/android/content/ComponentCallbacks#onLowMemory()
> Preferably, you should implement ComponentCallbacks2#onTrimMemory from ComponentCallbacks2 [...].
> That API is available for API level 14 and higher, so you should only use this onLowMemory() method as a fallback for older versions.
Since the SDL3 min api level is 19, there's no need for `onLowMemory()` compat.
2024-04-30 08:54:19 -07:00
Sam Lantinga
17d4f8d699
Updated to version 3.1.1 for the preview release
2024-04-01 17:03:46 -07:00
Sam Lantinga
36e73bdda4
Updated to version 3.1.0 for the preview release
2024-03-24 06:16:02 -07:00
Sylvain
1855ce68af
Fix bug #9331 - SDL3 Android crash getVibrator() == null
2024-03-23 16:31:21 -07:00
Frosty-J
f9d018c808
Add flag to registerReceiver on Android
2024-03-10 09:01:07 -07:00
Sam Lantinga
1cae52bbac
Added JNI native methods to proguard-rules.pro (thanks @AntTheAlchemist!)
...
Fixes https://github.com/libsdl-org/SDL/issues/3563
2024-02-25 08:40:47 -08:00
Ryan C. Gordon
2613e3da24
camera: Rewrote Android support.
...
This does something a little weird, in that it doesn't care what
`__ANDROID_API__` is set to, but will attempt to dlopen the system
libraries, like we do for many other platform-specific pieces of SDL.
This allows us to a) not bump the minimum required Android version, which is
extremely ancient but otherwise still working, doing the right thing on old
and new hardware in the field, and b) not require the app to link against
more libraries than it previously did before the feature was available.
The downside is that it's a little messy, but it's okay for now, I think.
2024-02-20 15:56:26 -05:00
Michał Janiszewski
631b05b211
Drop stray trailing whitespace for android-project
2024-02-16 09:22:23 -05:00
Sam Lantinga
9ce7fe2848
Removed SDL_HINT_ACCELEROMETER_AS_JOYSTICK
...
Sensors are a first-class object in SDL and we haven't gotten any feedback that this feature is useful these days.
Closes https://github.com/libsdl-org/SDL/pull/7879
2024-02-12 09:54:33 -08:00
Sam Lantinga
a31dc6dfcb
Switched SDL_TouchID and SDL_FingerID to be Uint64 with 0 being an invalid value
2024-01-18 10:55:24 -08:00
Amir Kadyrov
dd2d809407
AndroidShowToast: make OneShotTask members private final
2024-01-01 08:31:34 -08:00
Sam Lantinga
bb0e0ae080
Added a runtime check for BLUETOOTH_CONNECT in addition to BLUETOOTH (thanks @perepujal!)
...
Fixes https://github.com/libsdl-org/SDL/issues/8731
2023-12-24 06:50:42 -08:00
Sam Lantinga
9d13be743b
Make sure we're rendering whenever the activity might be visible, even if we don't have focus.
...
This fixes rendering when a system dialog is over the application
2023-12-18 19:21:00 -08:00
Sam Lantinga
58a5f5cbe8
Allow sendCommand() to be overridden by derived classes
...
In this case it's used to prevent switching to windowed mode when destroying and recreating the main window
2023-12-13 10:13:17 -08:00
Sam Lantinga
3c5e9e6112
We can wait up to 500ms in onNativeSurfaceDestroyed(), so wait at least that long in onDestroy()
2023-12-07 14:30:44 -08:00
Zack Middleton
5e9b0820f3
Add cursors for X11/Wayland window resizing
2023-11-21 08:34:13 -08:00
Sam Lantinga
9302d7732d
Fixed touch normalized coordinates
...
When converting normalized coordinates to pixel coordinates, the valid range is 0 to (width or height) - 1, and the pixel coordinate of width or height is past the edge of the window.
Fixes https://github.com/libsdl-org/SDL/issues/2913
2023-11-05 06:55:39 -08:00
Sam Lantinga
5dce4bc716
Makes SDLInputConnection and DummyEdit public classes (thanks Cole!)
...
I've added an additional patch that expands on the same basic idea as the first one; it makes SDLInputConnection and DummyEdit into public classes so that they can be overridden from the Xamarin end if their functionality needs to be extended. (In my case, I need to change the type of software keyboard that's displayed.)
Fixes https://github.com/libsdl-org/SDL/issues/2785
2023-11-04 23:22:55 -07:00
Sam Lantinga
3a482ebae0
Add createSDLMainRunnable() to SDLActivity (thanks Cole!)
...
This patch adds a new createSDLMainRunnable() method to SDLActivity.
Currently, SDL on Android expects to find SDL_main somewhere in native code. When using SDL in a Xamarin application, however, what we really want to do is write our entrypoint in managed code. The easiest way to do this is to allow subclasses of SDLActivity to provide their own Runnable to the SDL thread, as in the attached patch.
Fixes https://github.com/libsdl-org/SDL/issues/2785
2023-11-04 21:18:16 -07:00
Sam Lantinga
f52b330ed8
Added support for the HP HyperX Clutch Gladiate controller
2023-10-25 09:00:26 -07:00
Sam Lantinga
7c2669c9d9
Accept key events from any source
...
This allows TV remotes to navigate SDL applications (with source HDMI)
Fixes https://github.com/libsdl-org/SDL/issues/8137
2023-08-24 10:09:02 -07:00
Sam Lantinga
1e9d314482
Updated to Android minSdkVersion 19 and targetSdkVersion 34
...
This is updated to meet the latest requirements for apps on the Google Play store
2023-08-24 08:23:06 -07:00
Ryan C. Gordon
1c074e8d97
android: Fixed audio device detection.
2023-07-30 11:56:42 -04:00
Ryan C. Gordon
5ff87c6d4a
android: Reworked audio backends for SDL3 audio API.
...
This involved moving an `#ifdef` out of SDL_audio.c for thread priority,
so the default ThreadInit now does the usual stuff for non-Android platforms,
the Android platforms provide an implementatin of ThreadInit with their
side of the `#ifdef` and other platforms that implement ThreadInit
incorporated the appropriate code...which is why WASAPI is touched in here.
The Android bits compile, but have not been tested, and there was some
reworkings in the Java bits, so this might need some further fixes still.
2023-07-30 11:56:41 -04:00
Sam Lantinga
8cf5dc9963
Build on Android targeting the arm64-v8a architecture by default
...
This speeds up iteration time and covers most customer devices
2023-06-20 09:18:19 -07:00
Sam Lantinga
e6d1ba2a17
Added the concept of display natural orientation
...
Also renamed SDL_GetDisplayOrientation() SDL_GetDisplayCurrentOrientation()
The natural orientation of the primary display is the frame of reference for accelerometer and gyro sensor readings.
2023-06-17 07:42:16 -07:00
Sylvain
4e0f94ea7d
Android: add timeout when waiting the SDL thread to finish
...
C SDLmain() thread might have started (mSDLThread.start() called)
while the SDL_Init() might not have been called yet,
and so the previous QUIT event will be discarded by SDL_Init() and app is running, not exiting.
This is reprocible by adding instrumentation code in the SDLActivity.
And hopefully, this could fix an ANR, where SDLActivity is in WAITING state (in thread.join()):
at java.lang.Thread.join (Thread.java:1519)
at org.libsdl.app.SDLActivity.onDestroy (SDLActivity.java)
while SDLThread seems to be running
2023-06-12 11:53:09 +02:00
Sylvain
8096f7269b
Android: add robustness. check that the native code is run for the first time.
2023-06-09 10:13:58 +02:00
Sam Lantinga
bb12c6e03e
Added Android hidapi 0.14.0 support
2023-05-26 08:19:04 -07:00
Sam Lantinga
b48b1ce500
Document the Android SDK versions checked in Java code
2023-05-23 08:44:49 -07:00
Sam Lantinga
c971795954
Fixed reporting backspace key if there is no text in the edit buffer (thanks @312937!)
...
This workaround isn't necessary at API 30 and above.
Fixes https://github.com/libsdl-org/SDL/issues/7039
2023-05-22 11:54:46 -07:00
Sam Lantinga
3f6b2d1a61
Use numeric codes for Android versions, to avoid SDK dependencies
2023-05-22 11:51:32 -07:00
Sylvain
dfd80f3d76
Android: control activity re-creation
2023-05-12 07:48:33 -07:00
Sam Lantinga
2e6c48dcb4
Added support for the GameSir-G7 Controller for Xbox
2023-05-11 17:44:56 -07:00
Sam Lantinga
a4b4dff4a2
Added support for the Astro C40 in Xbox 360 mode
2023-04-27 17:10:44 -07:00
Sam Lantinga
b701ac0266
Fixed building with Java 1.7
2023-04-26 14:14:59 -07:00
Sylvain
f38cb0d06f
Android: don't add telephony device, as it cannot be opened
2023-04-14 11:31:27 +02:00
Rudolf Polzer
de3909a190
Android: indicate gamepaddb entries where axis order changed.
...
Axis order was changed in 6f1f586086 to improve
default mappings.
2023-03-11 12:43:48 -08:00
Sam Lantinga
8994878767
Added SDL_GetSystemTheme() to return whether the system is using a dark or light color theme, and SDL_EVENT_SYSTEM_THEME_CHANGED is sent when this changes
...
Fixes https://github.com/libsdl-org/SDL/issues/5334
Fixes https://github.com/libsdl-org/SDL/issues/6958
Closes https://github.com/libsdl-org/SDL/pull/6440
2023-03-09 03:25:20 -08:00
divVerent
6f1f586086
Fix Xbox One gamepad axis assignment on SDL_JOYSTICK_ANDROID API ( #7405 )
2023-03-06 15:33:18 -08:00
Sam Lantinga
824b9b0a58
Removed SDL_GetDisplayDPI()
...
This function wasn't consistently correct across platforms and devices.
If you want the UI scale factor, you can use display_scale in the structure returned by SDL_GetDesktopDisplayMode(). If you need an approximate DPI, you can multiply this value times 160 on iPhone and Android, and 96 on other platforms.
2023-02-08 17:35:54 -08:00
Sam Lantinga
5fded632d6
Added support for the Turtle Beach REACT-R and Recon Xbox controllers
2023-02-06 20:14:12 -08:00
Sylvain
b23d20cd4d
Android: display_mode scale: cast to do a float division
2023-01-27 08:17:20 -08:00
Sam Lantinga
162e40c982
Use densityDpi instead of density to more closely match what the UI scale is
2023-01-25 13:06:42 -08:00
Sylvain
73dc327c84
Android get the display Density
2023-01-25 09:28:21 -08:00
Wohlstand
9c7aed74ba
SDLAudioManager.java: Fixed the support for Android older than API 23
...
(cherry picked from commit b425036808 )
2023-01-10 20:15:59 -08:00
Sam Lantinga
0357390fc2
Added support for the ThrustMaster eSwap PRO Controller Xbox
2023-01-03 15:23:38 -08:00
Sylvain
4408e9f957
Android: orientation, check for exact match to "Portrait". (see #6959 )
...
(Portrait is also contained in PortraitUpsideDown)
2023-01-01 18:47:13 +01:00
Sylvain
c4982955b2
Android: inverse LandscapeLeft and LandscapeRight (see #6959 )
...
LandscapeLeft has now been set to ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE and LandscapeRight to ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE in order to reflect the docs: https://wiki.libsdl.org/SDL2/SDL_HINT_ORIENTATIONS
2023-01-01 18:41:55 +01:00
Sylvain Becker
5bf8bc2241
Android JAVA DetectDevices: 'is_capture' is inverted ( #6845 )
...
* Android JAVA DetectDevices: 'is_capture' is inversed
* Android Audio: adding audio device. also inverted capture, from jni side
2022-12-18 16:55:59 +01:00
Maido
abf5cc5203
Android audio device selection ( #6824 )
...
Make it possible to select a specific audio device for Android
2022-12-16 16:40:02 +01:00
Sam Lantinga
fcafe40948
Removed balls from the joystick API
...
They were only used by one joystick decades ago, so removing them for SDL3
Fixes https://github.com/libsdl-org/SDL/issues/6766
2022-12-05 13:17:18 -08:00
Sam Lantinga
5efca283d3
Add 8BitDo to the list of Xbox 360 third party vendors
...
Allows detection of the 8BitDo Ultimate Wired Controller
2022-11-28 14:54:36 -08:00
Sam James
3e7952ce8a
Avoid use of deprecated egrep/fgrep
...
GNU grep 3.8 emits a deprecation warning on use of egrep/fgrep.
Signed-off-by: Sam James <sam@gentoo.org>
2022-11-24 02:58:20 -08:00
Sam Lantinga
2c4159b99a
First pass at changing SDL 2.0 to SDL 3.0
2022-11-21 20:28:58 -08:00
Sam Lantinga
0bfeed061b
Updated to version 2.26.0 for release
2022-11-21 16:15:58 -08:00
Sam Lantinga
78ea6af2cd
Updated to version 2.25.1 for release candidate
2022-11-17 09:01:35 -08:00
Sam Lantinga
b4aba10154
Reverted game controller buttons from interacting with message box dialogs
...
These would only work for non-HIDAPI controllers, and other controller input would leak past the dialog, both of which would be confusing.
2022-10-06 12:10:46 -07:00
Sam Lantinga
893c87b27b
Fixed game controller buttons being unresponsive when the on-screen keyboard is up
...
Also mapped controller A and B buttons to interact with messagebox dialogs
2022-10-06 12:10:45 -07:00
Sylvain
fdef96e233
Android: remove "nativeSetComposingText" since it's not used anymore
...
(and it may fail registering at init if code is cleaned with proguard)
2022-10-04 12:08:09 +02:00
Sam Lantinga
5291e5cb76
Added version checking to SDLActivity.java
...
Make sure the SDL java and C code match when updating SDL in a game.
Right now we're assuming that we only have to make sure release versions match. We can extend the version string with an interface version if we need more fine grained sanity checking.
Fixes https://github.com/libsdl-org/SDL/issues/1540
2022-10-03 17:36:17 -07:00
Sam Lantinga
6acc7a5622
Mark the editbox as multi-line so the return key is always visible
...
Fixes https://github.com/libsdl-org/SDL/issues/6170
2022-09-30 17:45:08 -07:00
Sam Lantinga
257cacab18
Android text input now works like iOS, where you get text in progress and then backspaces and new text if autocomplete changes it or the IME commits it.
2022-09-30 17:25:58 -07:00
Sam Lantinga
82e341bc9e
Android: use real editable text and mimic the edit operations to generate key events
...
This fixes issues where the IME and the output would get out of sync
2022-09-30 11:40:29 -07:00
yurii levchenko
3ce3594e38
Split SDLSurface to public class
...
Add SDLActivity method createSDLSurface
2022-08-22 14:57:15 -07:00
Sam Lantinga
be3a945a8b
Added support for the 8BitDo Ultimate Wired Controller for Xbox
2022-07-20 11:05:55 -07:00
Sam Lantinga
986818143d
Fixed missing imports in SDLActivity (thanks @guusw!)
2022-07-18 07:20:58 -07:00
Sam Lantinga
27d8cbf026
Added PowerA and Qanba vendors for Android USB device support
2022-07-12 18:18:00 -07:00
Sam Lantinga
209f457ea4
Generate backspaces for the text we're going to replace when committing text
2022-07-01 10:13:19 -07:00
Sam Lantinga
7ac5d616f3
Fixed backspace being delivered after committed text on Android 12
...
Testing:
Enter "hello ", followed by "?" - the events generated are:
: commitText hello
: Key pressed : scancode 11 = H, keycode 0x00000068 = H modifiers: (none)
: Key released: scancode 11 = H, keycode 0x00000068 = H modifiers: (none)
: Key pressed : scancode 8 = E, keycode 0x00000065 = E modifiers: (none)
: Key released: scancode 8 = E, keycode 0x00000065 = E modifiers: (none)
: Key pressed : scancode 15 = L, keycode 0x0000006C = L modifiers: (none)
: Key released: scancode 15 = L, keycode 0x0000006C = L modifiers: (none)
: Key pressed : scancode 15 = L, keycode 0x0000006C = L modifiers: (none)
: Key released: scancode 15 = L, keycode 0x0000006C = L modifiers: (none)
: Key pressed : scancode 18 = O, keycode 0x0000006F = O modifiers: (none)
: Key released: scancode 18 = O, keycode 0x0000006F = O modifiers: (none)
: Key pressed : scancode 44 = Space, keycode 0x00000020 = Space modifiers: (none)
: Key released: scancode 44 = Space, keycode 0x00000020 = Space modifiers: (none)
: INPUT Text (\x68\x65\x6c\x6c\x6f\x20): "hello "
: finishComposingText
: deleteSurroundingText 1 / 0
: Key pressed : scancode 42 = Backspace, keycode 0x00000008 = Backspace modifiers: (none)
: Key released: scancode 42 = Backspace, keycode 0x00000008 = Backspace modifiers: (none)
: commitText ?
: Key pressed : scancode 225 = Left Shift, keycode 0x400000E1 = Left Shift modifiers: LSHIFT
: Key pressed : scancode 56 = /, keycode 0x0000002F = / modifiers: (none)
: Key released: scancode 56 = /, keycode 0x0000002F = / modifiers: (none)
: Key released: scancode 225 = Left Shift, keycode 0x400000E1 = Left Shift modifiers: (none)
: INPUT Text (\x3f): "?"
: setComposingText , at 1
: EDIT Text (): ""
Previously, the backspace would be delivered after the "?"
2022-07-01 08:58:08 -07:00
Sam Lantinga
37a517dc36
Re-enable IME text input on Android
...
In my testing, this results in text edit events followed by text input events. Any ASCII characters will generate scancode events based on a hypothetical US keyboard layout.
Fixes https://github.com/libsdl-org/SDL/issues/3377
2022-07-01 08:33:31 -07:00