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
Wohlstand
68beedde92
SDLActivity.java: Compatibility fix for debugSource
...
I did these fixes a while ago while debuggin my application, however, forgot to send them back.
2022-06-16 12:45:15 -07:00
staphen
123b9aaa41
Adjust gradle dependencies to enable the build to position assets for the APK
2022-03-15 21:57:25 -07:00
Sylvain
5b41844c75
Fixed bug #5322 - register virtual input devices as SDL_Touch device, fix compilation
2022-02-09 09:50:41 +01:00
Sylvain
3a9bbf604e
Fixed bug #5322 - register virtual input devices as SDL_Touch device because
...
they can send SOURCE_TOUCHSCREEN events even if getSources() doesn't declare them.
2022-02-09 09:37:36 +01:00
Sylvain
59f1e2875a
Android: add debug function to display class/sources
2022-02-08 21:50:19 +01:00
Sylvain
2df2da11f6
Android: handleMotionEvent() is checking for SOURCE_JOYSTICK. So don't handle DPAD GAMEPAD (see #5322 , #2718 )
2022-02-08 17:51:40 +01:00
Sylvain
1fc5dba3d5
Android: test for SOURCE_KEYBOARD / SOURCE_MOUSE. Don't compare to 0, since there are several bits (see #5322 , #2718 )
2022-02-08 17:41:17 +01:00
Sylvain
f185711203
Fixed bug #5310 : Android, Undefined reference to AAssetManager_fromJava
2022-02-08 16:18:01 +01:00
Sylvain
68dd84f1de
Android: TouchDevice -1 is reserved for SDL synthetic devce (See #5322 )
2022-02-08 11:42:24 +01:00
Sylvain
14bc3bf4ec
Android: fix typo to register TOUCHSCREEN device (see #5322 , #2718 )
2022-02-07 22:20:05 +01:00
Temdog007
b59e75c259
Handle menu button press from controller
2022-02-02 21:21:44 -08:00
Sam Lantinga
2363ddc330
Fixed crash on Windows Subsystem for Android, which doesn't have a USB manager.
...
Fixes https://github.com/libsdl-org/SDL/issues/5133
2021-12-28 17:30:36 -08:00
Sylvain
a1e992b110
Fixed bug #5118 - [Android] PointerIcon leak in Cursor API
2021-12-21 22:07:17 +01:00
Sylvain
cd86e269e4
Fixed bug #4982 - Failed to open audio_device. Android 5.1 should be ok.
2021-11-20 19:40:26 +01:00
Sylvain
b6d365677b
Fixed bug #4982 - Failed to open audio_device on Android 5.x with freq 96khz+
2021-11-20 15:28:36 +01:00
Sam Lantinga
7ad64357ee
Updated Android build environment for examples
2021-11-15 17:04:50 -08:00
Sam Lantinga
66058bbbd5
Fixed exception accessing Bluetooth devices on Android 12
...
Since accessing Bluetooth prompts the user for permission on both Android and iOS, and we only need it for Steam Controller support, we'll leave it off by default. You can enable it by setting the hint SDL_HINT_JOYSTICK_HIDAPI_STEAM to "1" before calling SDL_Init()
Fixes https://github.com/libsdl-org/SDL/issues/4952
2021-11-15 16:52:56 -08:00
Sam Lantinga
be5b4d980d
Added nativeGetHintBoolean for Java code
2021-11-15 16:52:54 -08:00
Sam Lantinga
2f591fb0a0
Added android:exported="true" to the example Android manifest
...
This is needed for targeting Android 12 (API 31)
2021-11-15 12:50:02 -08:00
Anders Jenbo
93556e67e0
Update AndroidManifest.xml
2021-11-14 20:19:54 -08:00
Anders Jenbo
b9c619017d
[Android] Limit WRITE_EXTERNAL_STORAGE to SDK 22-
...
Direct access to the external storage is no longer allowed as of SDK 30. But on older version of Android you will still need WRITE_EXTERNAL_STORAGE in order to request the Download Manager to download files to your external file folder.
2021-11-14 20:19:54 -08:00
Sam Lantinga
c2dd50a9a0
Fixed whitespace
2021-11-12 08:28:02 -08:00
Sam Lantinga
97c71371f2
If Android version >= API 31 PendingIntent.FLAG_MUTABLE
...
"If your app targets Android 12, you must specify the mutability of each PendingIntent object that your app creates. This additional requirement improves your app's security."
Thanks @FormularSumo and @cgutman
2021-11-12 01:21:29 -08:00
Sam Lantinga
544d2e6aa0
Don't try to load hidapi at startup on Android
2021-11-11 20:47:19 -08:00
Sam Lantinga
ed05a0e9e7
Fixed exception trying to get USB permission
...
You can't set the intent to be immutable, otherwise the USB system can't set the device and permission in the response. This works fine on Android 12 without an immutable intent.
2021-11-11 20:33:02 -08:00
Sam Lantinga
c877dd93c5
The hidapi code is now built into SDL, we don't need to load a shared library for it
2021-11-11 19:29:42 -08:00
Sam Lantinga
dd85cc0195
Fixed whitespace
2021-11-07 13:17:54 -08:00
FormularSumo
80d19282f7
If Android version >= API 23 PendingIntent.FLAGIMMUTABLE
...
"If your app targets Android 12, you must specify the mutability of each PendingIntent object that your app creates. This additional requirement improves your app's security."
FLAG_IMMUTABLE was added in API 23 so that's why I'm using "> API 23". Using API 30 would also fix the Android 12 issue. Alternatively if PendingIntents should be mutable you could change it to "FLAG_MUTABLE".
2021-11-07 13:16:13 -08:00
Sylvain
8b1a2fe860
backout SDL_AndroidSetInputType()
2021-10-17 23:47:59 +02:00
Sylvain
ccb12457f9
Fixed bug #4843 - Can not get the ime candidatelist like chinese/japaness input method
2021-10-17 23:17:54 +02:00
Sylvain
325ae5c35d
Android: getCurrentOrientation uses getContext() to retrieve the activity (see bug #4825 )
2021-10-13 08:35:56 +02:00
Sylvain
723f5cea43
Fixed bug #4825 - NullPointerException on SDLActivity.getCurrentOrientation() (Thanks Benau!)
2021-10-12 20:58:58 +02:00
Sam Lantinga
3172615074
Let Android know that we can handle USB devices
...
This is important on Android 29 and above if you don't want to be prompted for each device that you open
2021-08-04 13:13:22 -07:00
Sam Lantinga
107db2d899
Enable TV game mode by default on Android
2021-05-07 12:43:35 -07:00
Sylvain
13472cec67
Fixed bug #4228 : move from jcenter() to mavenCentral()
...
SDL can use relinker. If it's enabled on your project, you need to update to version 1.4.3
2021-04-30 09:48:29 +02:00
Sylvain
98a966d1c2
Android: don't need to set the SurfaceHolder format from java code
...
It's already set with ANativeWindow_setGeometry, and eventually set/changed also by eglCreateWindowSurface.
- avoid issues with older device where SurfaceView cycle create/changed/destroy appears broken:
calling create/changed/changed, and leading to "deuqueBuffer failed at server side, error: -19", with black screen.
- re-read the format after egl window surface is created, to report the correct one (sometimes, changed from RGBA8888 to RGB24)
2021-04-22 18:06:17 +02:00
Sam Lantinga
6d9c4f6c6c
Added support for the wired Amazon Luna gamepad on Android
2021-03-26 15:07:10 -07:00
Sam Lantinga
f5e9c5b7e0
Chromebooks support relative mouse motion now
2021-02-21 11:03:25 -08:00
Amir
1a924bc0bb
add SDL_AndroidShowToast for https://developer.android.com/reference/android/widget/Toast
2021-02-20 23:05:09 -08:00
Jordan Christiansen
7032539785
Disabled Bluetooth if BLE is not supported
...
BluetoothManager is supported for Android API 18+. On older versions, skip
Bluetooth instead of crashing.
2021-01-07 19:33:12 -06:00
Sam Lantinga
cdd397118f
Fixed the Xbox Series X controller showing up twice on Android
2020-12-15 14:57:49 -08:00
Sylvain Becker
311ae829c7
Android: keep compatibility with older JDK
2020-10-28 14:03:05 +01:00
Sylvain Becker
97cf314526
Android: apply code simplications found with lint / Android Studio
2020-10-27 21:14:49 +01:00
Sylvain Becker
0360987f45
Android: fix deprecated onCreateDialog() methods
2020-10-24 20:31:04 +02:00
Sylvain Becker
967041681b
Android: fix Clipboard deprecated methods
2020-10-24 15:36:05 +02:00
Sylvain Becker
b7b8ef59a3
Fixed bug 5307 - Crash when joysticks hats number is odd (Thanks Sockmonsters!)
2020-10-07 17:32:07 +02:00
Sylvain Becker
bffbc7e316
Android: better readibility for pollHapticDevices()
2020-10-07 14:55:23 +02:00
Sylvain Becker
20c070d869
Android: better readibility for pollInputDevices()
...
and move isDeviceSDLJoystick() test at first since there are
always non-joystick devices present.
2020-10-07 14:41:37 +02:00
Sylvain Becker
a70bb58d4b
Android: fix joystick allocation that can be never used
2020-10-05 14:09:31 +02:00
Sylvain Becker
2e38c94950
Fix bug 5303 - Touch/Mouse events simulation doesn't work on Android 11
2020-10-05 09:56:03 +02:00
Sylvain Becker
0467e332af
Android: small change to access to device diagonal value
2020-10-01 15:11:28 +02:00
Sylvain Becker
62b029f33b
Android: missing import class Uri
2020-10-01 14:43:59 +02:00
Sylvain Becker
dd55bfe89c
Android: add helper function to open an URL/URI (see bug 2783)
2020-10-01 14:41:09 +02:00
Sylvain Becker
7ad71563ce
Android: be sure shared libraries are loaded in onConfigurationChanged()
...
This could fix a rare crash if:
- onConfigurationChanged is called before onCreate();
or
shared libraries failed to load and onConfigurationChanged() is called
2020-09-25 10:42:07 +02:00
Sylvain Becker
96d555e25a
Android: remove un-needed java import (bug 4297)
2020-08-17 20:09:01 +02:00
Sylvain Becker
965b466ee8
Fixed bug 4297 - Android StrictMode policy. Remove APK expansion support
...
"In the second half of 2021, new apps will be required to publish with the Android App Bundle on Google Play"
(see https://developer.android.com/guide/app-bundle )
And "Android App Bundles don't support APK expansion (*.obb) files".
2020-08-17 19:50:20 +02:00
Sam Lantinga
d0947c1483
Fixed exception if getManifestEnvironmentVariables() is called without a current SDL activity
2020-06-04 12:30:25 -07:00
Sam Lantinga
68e1731e02
Don't bother logging security exception getting the device serial number
...
This can happen anytime we haven't opened the device yet
2020-05-29 15:40:17 -07:00
Sockmonsters
eea450bc99
- Added exception handler for the new SecurityException in USBDevice getSerialNumber
2020-05-29 15:37:03 -07:00
Sylvain Becker
33642b47b2
Android: robustness if locale failed to be detected at start
2020-05-08 21:50:23 +02:00
Sylvain Becker
2491f16f85
Android: send SDL_LOCALECHANGED when locale changes
2020-05-08 21:40:28 +02:00
Sam Lantinga
beab15b09e
Added additional logging to track down why the NVIDIA controller doesn't send the back button
2020-04-27 19:12:02 -07:00
Sam Lantinga
37faac0d81
Fixed java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.WindowManager android.app.Activity.getWindowManager()' on a null object reference
2020-03-05 08:43:16 -08:00
Sam Lantinga
dc54add5e0
Added some extra permissions and features likely to be used by SDL applications
2020-02-14 18:21:58 -08:00
Sam Lantinga
14bf532df3
Fixed opening audio on Android from the Steam Link shell activity
2020-02-13 16:10:52 -08:00
Sam Lantinga
4bb95e8403
Implemented OpenSL-ES audio recording on Android
2020-02-11 16:14:02 -08:00
Sam Lantinga
64c58b9f19
Fixed NullPointerException
2020-02-07 20:20:37 -08:00
Sam Lantinga
c9c89783cb
Miscellaneous pending fixes
2020-01-29 20:09:08 -08:00
Sam Lantinga
598cf69475
Fixed member order to make more sense
2020-01-28 21:41:13 -08:00
Sam Lantinga
43b377b077
Fixed wired PS4 controller support on Android
2020-01-28 17:11:17 -08:00
Sam Lantinga
ce7c51a9cc
Always release devices in onPause in case we're going to be force stopped, and for consistency with interacting with other activities that might use the controller
2020-01-26 00:37:48 -08:00
Sam Lantinga
43aa1fa9e7
Added support for detecting previously unknown Xbox 360 and Xbox One controllers using the HIDAPI driver with libusb and Android
2020-01-18 11:21:14 -08:00
Sylvain Becker
d52ba78b29
Fixed bug 4246 - Android: orientation between portrait<->landscape doesn't work
...
Improve handling of landscape/portrait orientation. Promote to SCREEN_ORIENTATION_SENSOR_* when needed.
Android window can be somehow resizable.
If SDL_WINDOW_RESIZABLE is set, window size change is allowed, for instance when orientation changes (provided the hint allows it).
2020-01-17 12:04:18 +01:00
Sam Lantinga
1d321850b6
Added support for claiming individiual interfaces on USB devices on Android
...
This is needed for supporting multiple wireless Xbox 360 controllers
2020-01-13 15:35:52 -08:00
Sam Lantinga
a7bf6af8c4
The Amlogic TVB-906X is Android TV
2020-01-11 04:34:23 -08:00
Sylvain Becker
f050309ee9
Android: fix IllegalStateException in onBackPressed()
...
Rare exception, not catch-able, which appears when the activity gets in a broken
state.
java.lang.IllegalStateException:
at android.app.FragmentManagerImpl.checkStateLoss (FragmentManagerImpl.java:1323)
at android.app.FragmentManagerImpl.popBackStackImmediate (FragmentManagerImpl.java:493)
at android.app.Activity.onBackPressed (Activity.java:2215)
at org.libsdl.app.SDLActivity.onBackPressed (SDLActivity.java)
at android.app.Activity.onKeyUp (Activity.java:2193)
at android.view.KeyEvent.dispatch (KeyEvent.java:2685)
at android.app.Activity.dispatchKeyEvent (Activity.java:2423)
at org.libsdl.app.SDLActivity.dispatchKeyEvent (SDLActivity.java)
2019-12-20 15:58:59 +01:00
Sam Lantinga
15d30298cf
Added support for wireless Xbox 360 controllers using the HIDAPI driver
2019-12-19 15:01:32 -08:00
Sylvain Becker
5d5a56717f
Fixed bug 4906 - Pressing Back button terminates app after SDL_StartTextInput
2019-12-19 13:54:03 +01:00
Sam Lantinga
7b2826f6c2
Added Android support for the Hyperkin X91 and the SteelSeries Stratus Duo
2019-12-17 12:03:57 -08:00
Sam Lantinga
d4e1c79720
Backed out changeset 36b79874a9c8, which fixed bug 4775
...
This change broke individual key events, so I'm reverting the change until we can investigate a better fix.
2019-11-27 17:17:03 -08:00
Sylvain Becker
59352cea8b
Fixed bug 4775 - Japanese on Android, remove inputtype PASSWORD (Thanks Tamo!)
2019-10-23 11:25:16 +02:00
Sylvain Becker
0a9c74aa9a
Fixed bug 3918 - HIDAPI, CMake support for android project
2019-08-27 11:38:43 +02:00
Sylvain Becker
7f9016f265
Android: remove tabs/indent
2019-08-15 20:38:25 +02:00