Skip to content

merge: sync LeanBitLab v3.9.4#118

Open
AsafMah wants to merge 65 commits into
devfrom
merge/upstream-v3.9.3
Open

merge: sync LeanBitLab v3.9.4#118
AsafMah wants to merge 65 commits into
devfrom
merge/upstream-v3.9.3

Conversation

@AsafMah

@AsafMah AsafMah commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Summary

This updates the existing upstream-sync PR to merge LeanBitLab/LeanType v3.9.4 into LeanTypeDual, pinned at release tag commit 56034a695 and including the still-unmerged v3.9.3 sync.

The v3.9.4 delta adds custom secondary layouts, configurable auto-correct triggers, text-expander placeholder fixes, gesture-engine memory/performance improvements, and dictionary/blacklist hardening. LeanTypeDual's fork identity remains unchanged: application id com.asafmah.leantypedual, version 3.10.0 / 4000, and no network permission in offline/offlinelite builds.

Integration notes

  • Kept LeanTypeDual version, application id, branding, privacy tiers, and fork-specific settings/features.
  • Preserved the v3.9.3 conflict resolutions already reviewed in this PR.
  • Reviewed Mergiraf's v3.9.4 resolutions in LayoutType.kt and SwipeGestureEngine.java.
  • Fixed a downstream integration collision: upstream's new CUSTOM1..CUSTOM5 values reused -10010..-10014, which LeanTypeDual already uses for PageUp/PageDown/Meta/MetaLock/Tab. Custom layout codes now use unique -10100..-10104 values.
  • Added KeySpecParserTest.keyCodeValuesAreUnique to prevent future runtime KeyCode collisions.
  • Updated the Unreleased changelog with one cumulative ### Upstream marker for v3.9.4 (including v3.9.3).

Verification

Compile gates:

./gradlew.bat compileOfflineRunTestsKotlin --no-daemon --console=plain
BUILD SUCCESSFUL

./gradlew.bat compileStandardRunTestsKotlin compileStandardfullRunTestsKotlin compileOfflineliteRunTestsKotlin --no-daemon --console=plain
BUILD SUCCESSFUL

KeyCode regression:

./gradlew.bat :app:testOfflineDebugUnitTest --tests "*KeySpecParserTest.keyCodeValuesAreUnique" --no-daemon --console=plain
BUILD SUCCESSFUL

Offline unit differential:

./gradlew.bat :app:testOfflineDebugUnitTest --continue --no-daemon --console=plain
Branch Tests Failed Skipped
v3.9.3 PR baseline 8e761e1fb 274 12 1
v3.9.4 updated merge 18ad76470 276 11 1

All 11 current failing test names already fail on the v3.9.3 baseline. There are no new failures. Baseline-only XLinkTest.knownDictionaries (external 404) now passes, and the suite gained two tests.

Permission check:

app/src/standard/AndroidManifest.xml: android.permission.INTERNET
app/src/standardfull/AndroidManifest.xml: android.permission.INTERNET

No INTERNET permission is present in offline/offlinelite manifests.

github-actions Bot and others added 30 commits July 4, 2026 03:21
LeanBitLab and others added 29 commits July 7, 2026 23:35
# Conflicts:
#	README.md
#	app/build.gradle.kts
#	app/src/main/java/helium314/keyboard/settings/screens/ToolbarScreen.kt
# Conflicts:
#	app/build.gradle.kts
@AsafMah AsafMah changed the title merge: sync LeanBitLab v3.9.3 merge: sync LeanBitLab v3.9.4 Jul 10, 2026
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.

2 participants