In CustomKeyboardView for mKeysDownCodesSet ArraySet
Also enable the option -Xlint:unchecked (within build.gradle) to show the unchecked conversion warnings on compile
Also added various comments to document behavior.
Minor JE_MULTI event (Fix concerned bad brackets code in the events.cpp for JE_MULTI (multiple fingers held down)
) fix and comments for mouse behavior
Allow onHover to catch the mouse events instead of OnTrackBallEvent()
Also the "system back" button is ignored for the Trackball too because we treat it as mouse in isMouse(e) check
Add multitouch handler class. Handling and early filtering of multitouch events is moved in the new class.
There were issues with manually aligning apks possibly due to upgrading gradle
The manual zipalign even though running with no fail message, would NOT align the apk properly anymore.
Command to manual verify alignment of an apk is:
Android/Sdk/tools/bin/zipalign -c -v 4 release/ScummVM-release-unsigned.apk
And also add some code to load and use the keyCharacterMap of the source device for the event
It is unclear if getUnicodeChar() already does this (loads the keyCharacterMap of the source device.
If it does, then the extra code is redundant.
Also remove ndk.dir from local.properties since it is getting deprecated
Gradle will only use the info (ndkVersion) in gradle.build. Possibly ndkPath too, but we probably don't need that, since ndk is within the sdk folder (default location)
Keyboard was ported over from our SDL port which used https://github.com/pelya/commandergenius/tree/sdl_android/project
Pending optimizations, floatable/draggable implementation and a few bug fixes
We are using a local copy and slightly modified version of KeyboardView and Keyboard (and related resources).
since the android KeyboardView widget will be deprecated in API 29.
The copies are taken from the AOSP, as per the recommendation from Android Developers.
See bug ticket: https://bugs.scummvm.org/ticket/11753
API 29 makes certain file access functions return empty lists due to restricitve policies. We need to come up with an alternative for Android 10 and higher, when we will switch to targeting API 29 (or higher). Google enforces this switch on November 2nd for application updates.
This repeats the commit change that mduggan did
The original commit was:
fdf84ed93e
Then it got revered by:
280446deb1
We need to manually remove some (android_project) directories in order for the builds to succeed on our buildbot after these changes. The buildbot does this itself once daily.
This makes the icon render much better on Android 11 and Chromebook devices. I
think it should also be backwards compatible - although the oldest device I had
to test was Android 7, it works fine there.
This does need upgrading at some point and it's basically harmless, but I need
to coordinate upgrading gradle on the buildbot to make it work.
This reverts commit fdf84ed93e.
Also androidx is replacing the Android Support library so it's best to use this one
According to https://developer.android.com/jetpack/androidx
AndroidX is a major improvement to the original Android Support Library, which is no longer maintained. androidx packages fully replace the Support Library by providing feature parity and new libraries.
AndroidX replaces the original support library APIs with packages in the androidx namespace. Only the package and Maven artifact names changed; class, method, and field names did not change.
Android API level 29 introduces scoped storage which is enabled by
default for applications targeting level 29.
This protection prevents us to access external storage.
There is a compatibility flag but it will disappear in Android 11.
To target more recent platforms, we should implement SAF FS backend.
Updated NDK to r21 (LTS)
Switch target Android to 29 as it is required by Google Play Store
Switch minimum Android to 16 (4.1) as it is the lowest supported version by NDK
Removed MIPS and armeabi as they are no longer supported
Renamed Android build names into official ones