Commit Graph

148 Commits

Author SHA1 Message Date
6489fe890e Backport text-to-speech support. 2022-07-01 11:04:50 +03:00
24e3b3b88d Add full support for Android scoped storage.
This was done by refactoring directory and file access handling for the Android platform so that any general filesystem access type go through the Android layer.
This allows us to validate whether the access is unrestricted, or whether it falls under scoped storage and thus act appropriately.
2022-06-26 16:53:02 -07:00
af4e3cb931 Merge pull request #62290 from madmiraal/fix-61816-3.x
[3.x] Remove broken scroll gesture on Android
2022-06-26 08:38:08 +02:00
a38119a746 Update android:targetSdkVersion from 30 to 31
Starting in August 2022, new apps will need to target API level 31 (Android 12) or higher and adjust for behavioral changes.

Read more here: https://developer.android.com/google/play/requirements/target-sdk

(cherry picked from commit ec6d5d6cba)
2022-06-23 15:59:15 +02:00
9091309ab7 Remove broken scroll gesture on Android 2022-06-21 17:04:42 +01:00
50bf882fcc Ensure joystick has been added or not already removed when processing input
(cherry picked from commit 806e7d18d1)
2022-06-16 20:47:49 +02:00
05fc140ee6 Misc editor tweaks and polishes:
- Using a bucketized approach to select the editor scale in order to avoid too high values
- Add default app dimensions: used on Android devices with free floating app windows to set the default app frame
- Add ability to launch the Game window in an adjacent frame when in multi window mode

(cherry picked from commit 6f7ec7f723)
2022-06-08 10:11:28 +02:00
9f0dba8b65 Ensure Android Java and Kotlin compile to the same version 2022-06-01 16:24:12 +01:00
b66b153b8c Remove duplicate Android sensor listener registrations
(cherry picked from commit cf0f967e6d)
2022-05-24 00:06:20 +02:00
b162e7ac39 Fix the logic to restart the Godot application 2022-05-23 13:15:25 -07:00
fe60de2c6a Check for null when retrieving clip data item text on Android
(cherry picked from commit 5924e2b90e)
2022-05-05 13:44:00 +02:00
d8e702b010 Merge pull request #60552 from madmiraal/implement-3466-3.x
[3.x] Add a method for obtaining display cutouts on Android
2022-05-02 07:58:05 +02:00
9a4d4ec2d5 Remove superfluous null check
(cherry picked from commit 988432b8bb)
2022-04-27 12:25:58 +02:00
76b5c31433 Replace index iterators with for each loops.
(cherry picked from commit 334ebd7eb7)
2022-04-27 12:25:47 +02:00
23b649b673 Remove superfluous check for minimum Android SDK.
(cherry picked from commit 2f225bf2c5)
2022-04-27 12:25:34 +02:00
ec2270b88f Add a method for obtaining display cutouts on Android 2022-04-26 13:52:33 +02:00
b5402818d7 Remove superfluous Android InputManager interface and implementation 2022-04-22 19:10:01 +02:00
3ba0508f79 Update the editor display scale based on the device's scaled density 2022-04-04 04:18:56 -07:00
8ca32d1727 Fix flickering issues with low processor mode on Android 2022-03-29 12:17:25 -07:00
6f2442b17a Cleanup the gradle build configuration
These changes resolve the inconsistency between gradle and scons targets by configuring the gradle buildtypes to match the scons targets.
2022-03-28 08:12:55 -07:00
cb0b2aefc3 Android port of the Godot Editor
These set of changes focus primarily on getting the core logic and overall Godot Editor UI and functionality up and running natively on Android devices.
UI tweaks / cleanup / polish, as well configuration for Android specific functionality / restrictions will be addressed in follow-up PRs iteratively based on feedback.

Co-authored-by: thebestnom <shoval.arad@gmail.com>
2022-03-28 07:54:10 -07:00
b8178a7f0a Setup logic to publish the Godot Android library to MavenCentral
(cherry picked from commit a2bf47de2b)
2022-03-17 14:45:19 +01:00
cec7c908ca Add get_screen_refresh_rate() to OS
This method can be used to get the refresh rate of a given screen.
It is supported on Windows, macOS, Linux, Android and iOS (but not
HTML5).
2022-03-10 22:10:48 +01:00
76297e744d Add OS.has_clipboard() to check clipboard content 2022-01-19 20:19:06 +08:00
a627cdafc5 Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-13 15:54:13 +01:00
b5d325e6ff Only rotate Android sensor values for sensors that need them rotated 2021-12-15 18:15:25 +00:00
451bba967a Merge pull request #55158 from m4gr3d/add_oculus_openxr_config_3x 2021-11-22 10:29:49 +01:00
05744ee0e2 Fix Android get_screen_orientation() not returning valid values 2021-11-21 12:14:29 +00:00
9c50bcabed Add support for OpenXR export configurations. 2021-11-20 06:59:36 -08:00
4f8bc77a4c Drop broken Android 32-bit framebuffer setting 2021-11-15 10:44:41 +01:00
abdf931832 Add off-screen GL context 2021-11-09 12:19:12 +01:00
724ef83971 Add default minSdkVersion and targetSdkVersion in the AndroidManifest.xml file 2021-11-03 21:49:22 -07:00
87c80f529f clang-format: Enable BreakBeforeTernaryOperators
clang-format keeps breaking the way it handles break *after* ternary operators,
so I give up and go with the only style they seem to actually test.
2021-10-28 14:50:33 +02:00
1b65550ec7 clang-format: Various fixes to comments alignment from clang-format 13
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
2021-10-28 14:50:32 +02:00
42d385b312 clang-format: Disable alignment of operands, too unreliable
Sets `AlignOperands` to `DontAlign`.

`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
2021-10-28 13:23:38 +02:00
cce7e6c9d6 Use current androidx Fragment library instead of legacy libraries
(cherry picked from commit 23311a6ed3)
2021-09-19 11:37:19 +02:00
1454d6c670 Add support for adding plugin views behind the main view on Android
Doesn't change the default behavior, but allows plugins to add their
view behind the main view, which gives more control over what happens
with inputs and can be useful along with transparent rendering.

(cherry picked from commit 0b681d5834)
2021-09-19 11:30:21 +02:00
52fdb4ece9 Window transparency support on Android
Implements per-pixel transparency feature on Android.
Allows plugins to do specific rendering and render godot UI on top
(useful for camera support with drawing on top).
2021-09-15 10:41:08 -07:00
128208d1d0 Check if vibration duration is > 0 on Android
(cherry picked from commit 47f338fc12)
2021-09-14 13:41:25 +02:00
3baf5563e8 Delegate handling and implementation of the restart functionality to the Godot host.
(cherry picked from commit f4222733ca)
2021-08-18 23:21:13 +02:00
e2bcdad43b Fix possible null pointer exception. 2021-08-16 23:14:10 -07:00
c88d1608ab Add partial support for Android scoped storage.
This is done by providing API access to app specific directories which don't have any limitations and allows us to bump the target sdk version to 30.
In addition, we're also bumping the min sdk version to 19 as version 18 is no longer supported by Google Play Services and only account of 0.3% of Android devices.
2021-08-13 11:04:17 -07:00
f976cec536 Merge pull request #51584 from m4gr3d/investigate_godot_resume_stalls_3_x
[3.x] Resolve issue where the Godot app remains stuck when resuming.
2021-08-13 08:44:33 +02:00
874aa1708f Resolve issue where the Godot app remains stuck when resuming.
This was caused by the fact that a new instance of Godot was created at resume while a previous instance already existed.
The previous instance would then go through its cleanup lifecycle, and would thus attempt to close the entire app, leading to the system to restart the app, thus starting the cycle anew.
The fix involves reusing the previous instance of Godot if one is available instead of creating a new one, as well as giving control to the host activity for how the process should be terminated.
2021-08-12 20:58:00 -07:00
45c2a7159e Switch to input buffering on Android
Key, touch and joystick events will be passed directly from the UI thread to Godot, so they can benefit from agile input flushing.

As another consequence of this new way of passing events, less Java object are created at runtime (`Runnable`), which is good since the garbage collector needs to run less.

`AndroidInputHandler` is introduced to have a smaller cross-thread surface. `main_loop_request_go_back()` is removed in favor just inline calling `notification()` on the `MainLoop` at the most caller's convenience.

Lastly, `get_mouse_position()` and `get_mouse_button_state()` now just call through `InputDefault` to avoid the need of sync of mouse data tracked on the UI thread.
2021-08-08 13:41:27 +02:00
7c8cc037ad Merge pull request #50221 from madmiraal/fix-50125-3.x
[3.x] Queue the calls to GodotLib.key when Android virtual done is pressed
2021-07-06 23:46:36 +02:00
2bd3cc0e16 Queue the calls to GodotLib.key when Android virtual done is pressed 2021-07-06 17:54:14 +01:00
d40f73e3a4 Remove Android onKeyMultiple override 2021-07-06 17:37:53 +01:00
009aa63a57 Merge pull request #50108 from madmiraal/android-use-lambdas-3.x
[3.x] Replace single method anonymous classes with lambdas in Godot Java code
2021-07-06 18:10:45 +02:00
4b03e05573 Use static inner classes in Godot Java code
(cherry picked from commit 23e152040b)
2021-07-06 11:20:42 +02:00