Commit Graph

799 Commits (cb1569345a6f17da08241e645ab03cb2e1b78d2f)

Author SHA1 Message Date
Fredia Huya-Kouadio d47e3fd3bf Misc XR editor updates:
- Bump the OpenXR Vendors plugin version to `4.1.0-stable`
- Include `quest2` in the supported devices manifest config
2025-07-21 11:17:48 +07:00
Thaddeus Crews 71a9948157
Merge pull request #108287 from syntaxerror247/fix-virtual-keyboard-height
Fix immersive mode and virtual keyboard height issue on Android
2025-07-18 11:05:19 +07:00
Fredia Huya-Kouadio 2509b2f457 Add a debug version for Godot's maven central artifact 2025-07-17 17:17:40 +07:00
Anish Mishra d8d3c86d71 Fix Immersive mode and keyboard height issues on Android 2025-07-16 23:31:47 +07:00
Thaddeus Crews 64c58c225a
Merge pull request #107473 from m4gr3d/address_transparency_feedback
Address remaining feedback on Android background transparency
2025-07-16 11:27:54 +07:00
Thaddeus Crews fb26c2603b
Merge pull request #108329 from m4gr3d/fix_android_eof_detection
Android: Fix the EOF detection logic
2025-07-10 11:39:25 +07:00
Fredia Huya-Kouadio 3a36726feb Update the maven publishing configuration following the deprecation of the OSSHR service
https://central.sonatype.org/news/20250326_ossrh_sunset/
2025-07-07 15:57:04 +07:00
Fredia Huya-Kouadio 3ade4b4b63 Address remaining feedback on https://github.com/godotengine/godot/pull/106709
Address https://github.com/godotengine/godot/pull/106709#discussion_r2114489487
2025-07-07 12:11:21 +07:00
Fredia Huya-Kouadio 2cfe31f9a1 Fix the EOF detection logic on Android
The current logic was causing loading to omit the last character because the EOF flag was triggered too early.
2025-07-06 01:09:33 +07:00
Fredia Huya-Kouadio c376348b16 Fix the build logic to generate the native debug symbols 2025-07-05 10:38:22 +07:00
Thaddeus Crews eb2625cf57
Merge pull request #108243 from m4gr3d/fix_android_plugin_init
Android: Fix Android plugins regression
2025-07-04 10:09:06 +07:00
Fredia Huya-Kouadio bbf22a39c1 Assign the `primaryHost` prior to initializing the registered Android plugins.
Address a regression introduced in https://github.com/godotengine/godot/pull/102866.
The proper behavior for Android plugins is to use `getContext` instead of `getActivity`, but since not all plugins follow this pattern, this fix provides backward compat to avoid breaking the plugins that don't.
2025-07-03 09:43:24 +07:00
Anish Mishra 4f695e1713 Android: Don't exclude display cutout in immersive mode 2025-07-03 08:07:08 +07:00
Anish Mishra 1338e29bf5 Android: Fix `DisplayServer.get_display_safe_area()` issues 2025-06-29 13:11:03 +07:00
Rémi Verschelde 260190c057
Merge pull request #107742 from m4gr3d/address_api_35_ui_issues
Android: Address API 35 UI behavior changes
2025-06-22 11:59:12 +07:00
Fredia Huya-Kouadio 2f4c3d411c Address API 35 UI behavior changes
- Fix issue on foldable where the embedded window would obscure the main window when launching
- Fix edge-to-edge support for non-immersive apps / games
- Add edge-to-edge export option to allow non-immersive apps / games to extend edge to edge
2025-06-20 13:29:38 +07:00
Thaddeus Crews f7c6f0057c
Merge pull request #103972 from m4gr3d/xr_editor_hybrid_support
Add support for running hybrid apps from the XR editor
2025-06-20 08:38:55 +07:00
Fredia Huya-Kouadio 09f5be761c Add support for running hybrid apps from the XR editor 2025-06-15 07:05:12 +07:00
Anish Mishra dcab8a721e Revert "Add support for exporting to Google Play Instant"
This reverts commit 12ad9ed4e0.

Shortly after the feature was merged, we received news that Google will shut down Instant Apps in December 2025. Since this feature is being discontinued soon, there’s no value in keeping it for just a few months.
2025-06-14 15:51:08 +07:00
Fredia Huya-Kouadio dc589e239c Add support for using an Android Service to host the Godot engine
- Provide a `GodotService` Android service implementation which can be used to host an instance of the Godot engine
- Provide a `RemoteGodotFragment` Android fragment implementation which provides the view and logic to wrap connection to a `GodotService` instance
2025-06-12 16:37:38 +07:00
Rémi Verschelde ae33da972b
Merge pull request #106709 from m4gr3d/fix_transparency_flags
Fix transparency background issue on Android
2025-06-12 23:32:44 +07:00
Rémi Verschelde 4adef85151
Merge pull request #106447 from kojurohan42/instant-build
Add support for exporting to Google Play Instant via Google Play Instant Export Option
2025-06-12 23:32:38 +07:00
Alexander Hartmann a1e12dca3f Fix `Input.vibrate_handheld` on Android. 2025-06-12 12:38:18 +07:00
Rémi Verschelde 6e5bcd2f41
Merge pull request #107207 from syntaxerror247/filePicker-save
Android: Fix save issue when using native file dialog
2025-06-10 12:30:21 +07:00
Anish Mishra a28697f2fe Android: Fix save issue when using native file dialog
Fixes the issue where saving a file without `MANAGE_EXTERNAL_STORAGE` permission using the `native file dialog` to get the file path causes the `ERR_FILE_NOT_FOUND` error.
2025-06-06 16:07:41 +07:00
Fredia Huya-Kouadio a0cb64569b Fix the `CAMERA` permission request on HorizonOS devices 2025-06-05 14:56:07 +07:00
Fredia Huya-Kouadio 547450befd Fix transparency background issue on Android
Fixes https://github.com/godotengine/godot/issues/106703
2025-06-02 22:45:16 +07:00
Fredia Huya-Kouadio 658d3736f4 Update the documentation for `JavaClassWrapper` and `AndroidRuntimePlugin`
Follow-up to https://github.com/godotengine/godot-docs/pull/10979
2025-05-30 09:39:53 +07:00
Thaddeus Crews 1c151e9980
Merge pull request #106724 from syntaxerror247/theme-attributes
Android: Add export option for custom theme attributes
2025-05-26 11:24:42 +07:00
Anish Mishra e084e479bf
Fix Android editor UI 2025-05-25 22:59:41 +07:00
kojurohan42 12ad9ed4e0 Add support for exporting to Google Play Instant 2025-05-23 22:00:14 +07:00
Anish Mishra 0312a0cc9e Android: Add export option for custom theme attributes
- Regenerates the `GodotAppMainTheme` and `GodotAppSplashTheme` during Android export. Any manual changes to these styles will be cleared and replaced with default theme attributes.

- Adds a new export option `gradle_build/custom_theme_attributes` for injecting custom theme attributes directly via the export window, avoiding the need to manually modify themes.xml.
2025-05-23 20:00:47 +07:00
Thaddeus Crews 7951a1bb87
Merge pull request #106359 from m4gr3d/remove_compress_native_libs_option
Remove the `gradle_build/compress_native_libraries` export option
2025-05-21 09:06:25 +07:00
Fredia Huya-Kouadio ec7fb37db1 Update to the AAB directory layout
Follow-up to https://github.com/godotengine/godot/pull/106152 to address the regression described in https://github.com/godotengine/godot/issues/106582
2025-05-19 10:50:43 +07:00
Thaddeus Crews 596a8eb54c
Merge pull request #106462 from shiena/fix/prevent-camera-permission
Android: Don't request `CAMERA` permission on editor startup
2025-05-16 07:43:14 +07:00
Thaddeus Crews 5620a215a1
Merge pull request #106021 from Alex2782/fix_xbox_controller_on_android
Fix Xbox Controller on Android
2025-05-16 07:43:09 +07:00
Fredia Huya-Kouadio 1b0bd35f09 Update the GodotOpenXR meta-data removal logic
Godot OpenXR Vendor plugin version 4.0.0-stable changed the plugin's manifest declaration, so this updates the logic to remove that manifest declaration to match.
2025-05-15 16:38:11 +07:00
Fredia Huya-Kouadio 773fc96ab2 Update the logic to validate the java version
Loosen the check to allow Java version >= 17
2025-05-15 16:28:07 +07:00
KOGA Mitsuhiro 64e2c31c10 Android: Don't request CAMERA permission on editor startup 2025-05-16 06:45:37 +07:00
Fredia Huya-Kouadio e3d60bbd0c Remove the option to compress Android native libraries
Follow-up to https://github.com/godotengine/godot/pull/106358, this is a separate commit / PR since it shouldn't be cherry-picked in previous releases as it removes existing functionality.

Support for 16kb page size added in the previous PR requires the native libraries to be uncompressed, so we're deprecating and removing the option to compress native libraries.
See https://developer.android.com/guide/practices/page-sizes#agp_version_851_or_higher for more details.
2025-05-15 08:41:46 +07:00
Thaddeus Crews 82ea0b9293
Merge pull request #106358 from m4gr3d/update_ndk_28
[Android] Add support for 16 KB page sizes, update to NDK r28b
2025-05-15 10:22:27 +07:00
Fredia Huya-Kouadio 27bdc86ed1 Bump the NDK to version 28.1.13356709
Doing so automatically adds support for 16kib page to the Godot Android shared libraries.
See https://developer.android.com/guide/practices/page-sizes#compile-16-kb-alignment for details.
2025-05-13 08:27:36 +07:00
Leo de Penning 296ca79b9d Add CameraFeed support for Android
Co-authored-by: KOGA Mitsuhiro <shiena.jp@gmail.com>
2025-05-13 22:46:06 +07:00
Rémi Verschelde c1d3746a67
Merge pull request #105992 from uno1982/4.5-dev-fix-android-controller
Fix issues with Android controller input handling
2025-05-13 01:04:52 +07:00
Fredia Huya-Kouadio c29545f793 Bump the minimum supported SDK version to 24
Raise the minimum supported Android version from Android 5 (Lollipop) to Android 7 (Nougat).
2025-05-08 09:45:32 +07:00
Fredia Huya-Kouadio 4b4144cc39 Annual versions bump for the Android platform
- gradle: 8.2 -> 8.11.1
- androidx.constraintlayout:constraintlayout: 2.1.4 -> 2.2.1
- Android gradle plugin: 8.2.0 -> 8.6.1
- Android compile sdk: 34 -> 35
- Android target sdk: 34 -> 35
- Android build tools: 34.0.0 -> 35.0.0
- kotlin: 1.9.20 -> 2.1.20
- androidx.fragment:fragment: 1.7.1 -> 1.8.6
- OpenXR vendors plugin: 3.1.2-stable -> 4.0.0-stable
2025-05-07 13:14:49 +07:00
Alexander Hartmann cf00265386 Fix Xbox Controller on Android 2025-05-03 01:09:05 +07:00
uno1982 5ce11b1eac Fix for ps4 and ps5 controller options and share buttons 2025-05-01 11:30:02 +07:00
Anish Mishra f8e935d406 Enable close button on PicoOS 2025-04-29 22:38:37 +07:00
Fredia Huya-Kouadio fac2ebed78 Update the project NDK to the latest LTS version (r27c) 2025-04-22 19:43:59 +07:00
Fredia Huya-Kouadio 8a514ae56f Enable native debug symbols generation 2025-04-22 09:04:49 +07:00
Thaddeus Crews 485406b5e0
Merge pull request #104819 from m4gr3d/setup_godot_tools_lib_maven_central
Add maven publishing configuration for Godot tools
2025-04-16 10:45:14 +07:00
Thaddeus Crews 9906016959
Merge pull request #105301 from syntaxerror247/fix-decimal-keyboard
Android: Fix decimal keyboard
2025-04-15 12:28:46 +07:00
Anish Mishra 8f0a642f6c Android: Fix Decimal keyboard 2025-04-15 08:09:37 +07:00
Thaddeus Crews 4972a524fc
Merge pull request #96139 from Alex2782/reverting_pr_84331
Add configuration option to disable `Scroll Deadzone` on Android
2025-04-11 09:51:08 +07:00
Alex cd68034e01 Add configuration option to disable `Scroll Deadzone` on Android 2025-04-07 22:15:31 +07:00
Anish Mishra b462db5adb Android: Hardware keyboard connection status callback
Adds a DisplayServer method to register hardware keyboard connection change callback.
2025-04-05 08:14:29 +07:00
Fredia Huya-Kouadio 19700dacdf Add maven publishing configuration for Godot tools
The Godot Android library on MavenCentral is a `template` build; this updated configuration adds a new 'Godot Tools' publishing artifact, allowing developers access to the `editor` build of the Godot Android library.
2025-03-31 10:29:06 +07:00
Rémi Verschelde e9d827b440
Merge pull request #103173 from m4gr3d/fix_prebuilt_manifest_config
Updates and fixes to the Android prebuilt export logic
2025-03-28 14:31:57 +07:00
Anish Mishra afe68f672f Add support for "Mute Game" toggle in the Android Editor 2025-03-21 01:33:38 +07:00
Fredia Huya-Kouadio 845c925b67 Add support for export plugins to modify the Android prebuilt manifest 2025-03-14 16:05:09 +07:00
Thaddeus Crews e9e4760335
Merge pull request #83538 from bruvzg/size_and_at
[FileAccess] Implement `get_size` and `get_access_time` methods.
2025-03-11 14:00:58 +07:00
Thaddeus Crews 56bc9bc2f4
Merge pull request #102984 from syntaxerror247/volume-buttons
Android: enable support for volume button events
2025-03-11 09:34:46 +07:00
bruvzg 85d3be8070
[FileAccess] Implement `get_size` and `get_access_time` methods. 2025-03-09 16:07:00 +07:00
Rémi Verschelde c301b2ad9a
Merge pull request #103419 from Alex2782/fix_issue_96770
Fix crash after changing device language
2025-03-04 01:02:27 +07:00
Alex 1c02316365 Fix crash after changing device language
The app was restarting unexpectedly due to missing configChanges flags.
Added "locale|layoutDirection" to AndroidManifest.xml to prevent activity recreation.
2025-03-01 02:42:56 +07:00
Fredia Huya-Kouadio bea6472ea4 Fix Android mouse capture issues
- Allow mouse capture to be enabled in `_ready`
- Update the input handler logic to avoid dropping mouse captured motion events
2025-02-28 13:54:30 +07:00
Anish Mishra 5ce16dfc69 Android: enable support for volume button events
- Enable events KEY_VOLUMEUP and KEY_VOLUMEDOWN on Android.

- Adds a project setting to override volume buttons. It would disable system volume changes when the buttons are used within the project.
2025-02-28 09:47:22 +07:00
Anish Mishra 28d1dccf63
Android: Fix export and runtime logic to check if using Vulkan
Also fix iOS export logic that would force a min target of iOS 14.0 (for Metal)
even when targeting the Compatibility renderer.

Co-authored-by: Pāvels Nadtočajevs <7645683+bruvzg@users.noreply.github.com>
2025-02-23 12:28:59 +07:00
Rémi Verschelde 545ca2538e
Merge pull request #103122 from syntaxerror247/fix-crash
Android: Fix excessive `getRotation` calls
2025-02-23 12:13:02 +07:00
Anish Mishra ee4e809d4c Android: Fix excessive getRotation calls 2025-02-21 20:32:54 +07:00
Anish Mishra 129ffce06a Android Editor: Fix expand button black bar issue 2025-02-21 13:00:49 +07:00
Rémi Verschelde 3787cc4901
Merge pull request #102802 from syntaxerror247/fix_orientation_handling
Android Editor: Fix embed mode orientation handling
2025-02-13 23:35:12 +07:00
Anish Mishra 4a22e007f6 Android Editor: Fix embed mode orientation handling 2025-02-13 22:22:50 +07:00
Fredia Huya-Kouadio 8ed8b4a89d Bump the version of the openxr vendors plugin dependency 2025-02-12 09:51:07 +07:00
Fredia Huya-Kouadio 2a66335ec2 Address API regression from https://github.com/godotengine/godot/pull/101050 2025-02-11 10:19:47 +07:00
Fredia Huya-Kouadio 7495a8a02e Add support for embedding game process in the Android Editor
- Implement Android editor specific `EmbeddedGodotGame` to support embedding the game window in the Android editor
2025-02-11 02:20:18 +07:00
Thaddeus Crews c90fd7f3da
Merge pull request #98066 from TCROC/fix-android-mono-export
Fix Android mono export with 2 or more cpu architectures fails
2025-02-10 12:21:32 +07:00
Travis Lange 5e2fd7b1d7 fix android mono export causing conflicts 2025-02-10 10:09:52 +07:00
Anish Mishra b89957efce Android: Add Snackbar UI component 2025-02-08 22:09:46 +07:00
Fredia Huya-Kouadio 9e4365f1a7 Export the `rendering/renderer/rendering_method.mobile` project setting to the AndroidManifest
The AndroidManifest already stores the Godot editor and library versions. The addition of this meta-data allows to identify Godot Android apps that may be subject to renderer specific issues addressed in future versions of the engine.
2025-02-04 21:11:56 +07:00
Thaddeus Crews b0655dc86f
Merge pull request #101050 from jamie-pate/fix_android_godot_app_create_instance
Fix create_instance in android GodotApp so non-editor apps can restart
2025-01-22 16:32:29 +07:00
Thaddeus Crews 24fb28af55
Merge pull request #101689 from syntaxerror247/native-dialogs
Make dialogs non-cancelable on Android
2025-01-20 10:05:43 +07:00
Jamie Pate 605b97075f Fix create_instance in android GodotApp so non-editor apps can restart
Enables OS.create_instance(args) and OS.set_restart_on_exit(true, args)
on android.

Borrowed the logic from the editor, so it completely restarts the
process so you can pass --rendering-method, --rendering-driver to switch
between forward_plus, mobile, gl_compatibility etc on an exported app.

Related:
https://github.com/godotengine/godot-proposals/issues/6423
2025-01-19 03:23:45 +07:00
Anish Mishra 401310d74d
Make dialogs non-cancelable on Android. 2025-01-17 19:45:34 +07:00
Fredia Huya-Kouadio b4f25b1863 Clean up the XR editor logic
- Coalesce common logic into the `main` flavor to avoid duplication
- Code cleanup
2025-01-16 09:40:30 +07:00
Rémi Verschelde 4d1cfc1784 Merge pull request #101061 from syntaxerror247/first-pr-2025
Android: Implement support for `native dialog`
2025-01-14 15:05:59 +07:00
Anish Mishra cb9ee099ac Android: Implement support for native dialog
This adds support for DisplayServer::dialog_show() on Android, aligning it with the functionality already available on macOS and Windows.
2025-01-14 15:03:14 +07:00
Anish Mishra 867ae4d85a Update Android editor name and add missing icons 2025-01-14 13:46:45 +07:00
Rémi Verschelde b7c0a0fbd1 Merge pull request #101387 from picoxr/add-picoos-immersivemode
Add PICO OS Immersive Mode
2025-01-13 20:22:11 +07:00
ygz-bd a2bfb7cff2 Enable XR Preview Mode for PICO OS
Supported features in the immersive preview mode
- Passthrough
- Hand tracking
Notes:
- Multi-window is only available for internal apps on PICO OS, therefore launching adjacent windows is not possible currently.
- Passthrough splash screen is not supported on PICO OS
2025-01-13 16:34:22 +07:00
Fredia Huya-Kouadio 4bc8918c19 Add support for specifying whether to play the current scene or a specific scene in XR or regular mode
The functionality is only activated for the XR Editor, when a project has OpenXR enabled.
2025-01-12 22:02:24 +07:00
Anish Mishra d7532f0d31
Android Editor: Fix themed icon 2025-01-06 19:14:00 +07:00
Fredia Huya-Kouadio 7ad9d23a1d Updates how the `REQUEST_INSTALL_PACKAGES` permission is handled
- Only request the permission the first time the editor tries to open an apk
- Disable the permission for the HorizonOS build as the HorizonOS store doesn't support it yet
2024-12-25 20:04:34 +07:00
Thaddeus Crews ff706b8fb8
Merge pull request #100756 from raulsntos/android/fix-aab-path
[Android] Fix path to AAB in copyAndRenameBinary task
2024-12-23 11:15:08 +07:00
Raul Santos d380cb1a6c
[Android] Fix path to AAB in copyAndRenameBinary task 2024-12-22 22:40:36 +07:00
Rémi Verschelde b46103b286
Merge pull request #100601 from syntaxerror247/wear-OS
Add option to disable `Swipe to Dismiss` for Wear OS
2024-12-20 23:56:54 +07:00
Anish Mishra 5d8e2cd63f Add option to disable Swipe-to-Dismiss for Wear OS 2024-12-20 23:21:50 +07:00
Anish Mishra 9deee0097a Fix Android native file picker 2024-12-19 19:31:32 +07:00
Fredia Huya-Kouadio 23cea1b9d2 Additional fixes and improvements to JavaClassWrapper
- Fix crashing bug when invoking class constructor with parameters
- Add support for accessing class constants
- Add support for Godot Callable arguments. A Godot Callable can be wrapped by a Java Runnable to allow Java logic to run arbitrary Godot lambdas
- Automatically convert java.lang.CharSequence to Godot String as needed
- Code cleanup
2024-12-17 18:46:34 +07:00