Trigger haptic feedback when a long-press gesture fires a right-click
(context menu) in the Android editor. Uses Android's native
`HapticFeedbackConstants.LONG_PRESS` on the render view surface.
An editor setting `interface/touchscreen/haptic_on_long_press` is added
under the existing touchscreen section to allow users to disable this
behavior. The setting defaults to enabled on native touchscreen devices.
This allows removing it from `class_db.h`, significantly reducing the amount of files
that include it transitively.
Also includes some include cleanup in `control.h` and `rich_text_label.h` done while
ensure they don't depend on `callable_mp`.
This will allow decoupling `display_server.h` from a number of headers in the
codebase which only require those enums and not all the DisplayServer API.
This editor setting is queried once every 3 seconds, as it is used
to check whether devices have been (dis)connected for one-click deploy.
This method may be called early on depending on initialization order,
which has led to occasional error messages when exporting a project.
The method now returns early if EditorSettings isn't ready yet
(it will be called again soon after anyway).
- Removes `native_menu.h` dependency from `display_server.h`.
It's now forward-declared in all DisplayServer implementations and should
be included in the .cpp's.
- Removes some unused `rb_set.h` and `rb_map.h` dependencies, which leads to
having to include them explicitly in half the scene and editor codebase...
which shows how much we depend on `display_server.h`.
- Forward-declare `input_event.h`, so now we need only `keyboard.h`.
The project is setup in Android Studio with three buildtypes:
- `release` for release builds of the engine
- `debug` for debug builds of the engine with `dev_mode`, `dev_build`, and `debug_symbols` disabled
- `dev` for debug builds of the engine with `dev_mode`, `dev_build`, and `debug_symbols` enabled
This commit deprecates and removes the `dev` buildtype and instead enables `dev_mode`, `dev_build`, and `debug_symbols` for the `debug` buildtype when building with Android Studio.
The `release` buildtype has also been updated such that a `release` build built with Android Studio and signed with non-production keys can be installed side-by-side with a production-signed release (e.g: from the store).