Draft
Conversation
(cherry picked from commit ff33a5e434576c505b8b907636538ab012b2e04c) (cherry picked from commit 30c2b02c13b70b3d0dc0d4030071f4a9feebc119) (cherry picked from commit 1e76fe638aa76eda6481a75b0a11f0d8c24857a9)
(cherry picked from commit 4c733db)
(cherry picked from commit 00f3bf6)
Updates gradle to version 7, android sdk 31 and latest ndk 21 with LTS support. Replaces old app-compat with AndroidX and increases min sdk supported to 15. (cherry picked from commit c71f0b4)
(cherry picked from commit b53f2e5251eb3775281ece2530a0af0d6cfee38f)
Very old bug that seems harmless for most platforms, but started crashing applications on Android 11. (cherry picked from commit 08a36206b1601aa17a7962ad3cd7b9cda72328e3)
previously, it was possible to have events targeting invalid opengl context because they were fired before the Launcher activity was properly resumed (cherry picked from commit f3c37b508c9b6a70c44d7a7858cc20e5ba7e8040)
Using ContentResolver to obtain a file descriptor or input/output streams is now preferred over using File or file streams. In fact, using ExifInterface with a file obtained by any other mean is more likely to fail. (cherry picked from commit 9aee97dd88068e73a2fe4d00420a9b0dc173e810)
starting at api level 30 (cherry picked from commit cdd4d876042ade1286e4782b5ac6d180ab9d3fc1)
(cherry picked from commit a87ae2b6fafabfa1f3cda14fdacf93d7b8936332)
Resource optimization may rename files in resource folders, breaking the current implementation for logo replacement. (cherry picked from commit a32e853)
(cherry picked from commit c83d447bc8608236279d6d917f804369eecc748f)
(cherry picked from commit 859c9b90fd07807818096fb32d677deceeccf930)
(cherry picked from commit 8f5a42f4ff1d4810715291572faaa01f989e12ec)
(cherry picked from commit 1c9aa39d3d7a47f8e54020e29a594ef68de5be1f)
- NDK raises minimum API level to 19. - Activities, receivers, and any other element with an intent-filter is now required to have the attribute android:exported. - globals declared in headers must be extern. - newer compiler is having trouble with our bool type and I'm too busy to actually worry about finding out the proper way of handling this without breaking WinCE. In the mean time, using int32 will do. (cherry picked from commit 0fff736f28293dc03fb6e7684c3fdb8e10a20090)
(cherry picked from commit b0c245fa9ae109d68222f5a67fcb110154c3b9d2)
(cherry picked from commit f800b06bf91f2a6daa922d7cb04fd33136904bd7)
- androidx.core:core-ktx should NOT be updated to 1.9.0 alpha. Alpha release is causing build issues with latest gradle tool changes. - androidx.appcompat:appcompat updated to 1.4.2. (cherry picked from commit 7b8d408b7355f289c2307ccf9a5e6ce868350a61)
(cherry picked from commit 3761ae605a09f2ffad2ce15b1889358f3672f454)
(cherry picked from commit df00842c2a1b9fdb4c028e05ffe79a5f5c376c50)
Also adds a new option to force keeping the MANAGE_EXTERNAL_STORAGE permission for Android. (cherry picked from commit d8e17476637a79a8c2d6c99b370e4d829ccd2356)
Play store requires keystore to have stronger protection, but the old keystore is kept for default APK signing. (cherry picked from commit 088c93a56e5dc61e25503220ef8344869efa325f)
(cherry picked from commit 2860baac8463bed14df5a7db17d9456f04ef1a61)
(cherry picked from commit df7966c86bd8989949be4903eb0f0a81e5160204)
... therefore making BuildConfig.APPLICATION_ID invalid at runtime. (cherry picked from commit 452ae00363255579cdc35c88470a8a8aba1c25f3)
select is dangerous and makes the application susceptible to crashes or worse. poll should be used instead. (cherry picked from commit cfb79395a26d2e6ea26315246397278e0aee9e76)
(cherry picked from commit 6c3e2efc411b1077a9131810bb5f542a3873b84a)
(cherry picked from commit 9d9ca9a3c4e4eb800c1a510dbfe7da46cbef2e13)
Deprecated shiftScreenColor and added unsafeAreaColor, which can be set to color the unsafe areas of the screen and the disabled area during a screen shift. It just makes more sense to have them both use the same color, and there's no need for setting it twice. (cherry picked from commit 70a06c6fb48d7294f2928d16975b83a1425e6cd3) Commit: 6a25c64 [6a25c64] Parents: cc01be0 Author: Fabio Sobral <flsobral@gmail.com> Date: 16 January 2026 at 17:08:11 GMT-3 Commit Date: 9 February 2026 at 17:39:02 GMT-3
(cherry picked from commit cf5dee168d42478b4f380d96922d509bda1ea1a6)
(cherry picked from commit df5379d428cad34620ec852b1f49e2cadf263af3)
(cherry picked from commit c9af3709df7e7fb06cb25a1b64dd94d2441cb49b)
(cherry picked from commit 497968e6be7dbf0f86868b84e581f72b1a8da809)
(cherry picked from commit 28d40ed36bc6e1a830f71c87e980d696a1ad3ad3)
(cherry picked from commit 0ee0cd867d53f15ad7de1a1cb7e39b4702c7327c)
(cherry picked from commit bde1cc650d4954243c7e2a877162ef177d2e3ddf)
(cherry picked from commit 26b28f0cc9397fdd168f8b69633fea0e454026f9)
This fixes 497968e6b, which introduces a cache for NinePatch that uses Image as key, that ultimately doesn't work because Image lacks hashCode implementation. (cherry picked from commit 4423b3f26be835c9cd1ac76053d10c64eb15d237)
(cherry picked from commit c593756e274dd7174eab9023fe3bb8cb633f1629)
To ensure this method isn't called directly, bypassing the cache used by the other two loads. (cherry picked from commit 2671be848788a222384fd5fa6ee7894c6c17abe3)
(cherry picked from commit 2cc8229e9879e0e8dbbf2ed3bf53a71dfe9b76f2)
(cherry picked from commit 66fe40e6b1cc435981d6a1097bfee2c0dd50a823)
(cherry picked from commit becc62ace30f904b11e07b3e18d920ce8c32ad96)
(cherry picked from commit ff25be0e27737677cb7d034caefe56075c0d04b2)
(cherry picked from commit e36edc540e121cc575e02aedf087595fe69e6dca)
Searching for every possible language upon initialization makes no sense and takes a stupid long time. (cherry picked from commit ec35bb51f0134e25437e25ea812bca0c182ac0a5)
This fixes 497968e6b, which introduces a cache for NinePatch that uses Image as key, that ultimately doesn't work because Image lacks hashCode implementation. (cherry picked from commit 4423b3f26be835c9cd1ac76053d10c64eb15d237) Commit: 9f50486 [9f50486] Parents: 490213a Author: Fabio Sobral <flsobral@gmail.com> Date: 23 February 2024 at 17:54:41 GMT-3 Commit Date: 12 February 2026 at 19:09:36 GMT-3
Loss of performance is due to modern Clang not being able to optimize properly when DIRECT_JUMP is used.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Keeping the template below, I'll edit later.
Description:
Describe your changes in details.
Related Issue:
Please link the issue here.
Motivation and Context:
Why is this change required? What problem does it solve?
Benefited Devices:
How Has This Been Tested?
Tested Devices:
Screenshots or videos:
If appropriate.