Skip to content

Conversation

@PatrykMis
Copy link

@PatrykMis PatrykMis commented Oct 6, 2025

This update syncs the TalkBack codebase with the latest upstream sources and adds downstream improvements specific to GrapheneOS.

Changes include:

  • Rebased to the latest upstream version.
  • Updated liblouis and Braille tables (includes numerous memory leak fixes, per upstream changelog).
  • Implemented fix for Item below finger is not spoken when screen is hidden #98 (restores touch exploration when Dim Screen is enabled on Android 15 QPR1+).

All changes verified to work and to build successfully with the modern Gradle/AGP toolchain.

thestinger and others added 20 commits October 12, 2025 11:27
Signed-off-by: Patryk Miś <[email protected]>
Signed-off-by: Patryk Miś <[email protected]>
Signed-off-by: Patryk Miś <[email protected]>
PatrykMis and others added 11 commits October 12, 2025 11:27
Signed-off-by: Patryk Miś <[email protected]>
Signed-off-by: Patryk Miś <[email protected]>
- Matched window flag combination from TalkBack 15.2.1
  (NOT_FOCUSABLE | NOT_TOUCHABLE | FULLSCREEN | LAYOUT_NO_LIMITS)
- Removed DIM_BEHIND
- Kept flag ordering identical to the upstream compiled binary
- Replaced getDefaultDisplay().getRealSize() with the WindowMetrics API
- Verified working on Android 15 QPR1+ (API 35+)

Fixes an issue where touch exploration stops working when Dim Screen is active
since Android 15 QPR1 (API 35).

This change does not affect earlier Android versions (falls back to the Display API on < R).
It complies with overlay security policies (WindowMetrics + Insets), does not violate the
event delivery model on Android 15 QPR1+, and does not introduce any bypass of
edge-gesture protection.

Fixes #98

Signed-off-by: Patryk Miś <[email protected]>
Lots of memory leak and memory corruption fixes, according to changelog.

Signed-off-by: Patryk Miś <[email protected]>
…clude

Background:
Upstream liblouis recently switched to `#include <config.h>` instead of
`#include "config.h"`. This works fine with autotools builds because
`-I.` is always added to the compiler flags. However, in the Android NDK
build system `.` is not in the include path by default, which causes
build failures.

Fix:
Explicitly add -I$(LOCAL_PATH)/liblouis to LOCAL_CFLAGS so that <config.h>
is found during compilation. This keeps upstream sources untouched and
solves the issue cleanly in the build system layer.

Related upstream PR (proposed fix for using `"config.h"`):
liblouis/liblouis#1855

Signed-off-by: Patryk Miś <[email protected]>
These are only used for version output that's not actually used.
- Fix status bar being white
@PatrykMis PatrykMis changed the title Update to latest upstream and integrate downstream fixes Rebase into latest upstream and integrate downstream fixes Nov 13, 2025
@thestinger
Copy link
Member

@PatrykMis Is this working well? Could you check it again? We can probably merge it soon.

@PatrykMis
Copy link
Author

PatrykMis commented Dec 22, 2025

Yes, it's working well, I'm using this version for over two months.

Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants