Skip to content

Improve two-thumb typing settings#6

Merged
AsafMah merged 18 commits into
mainfrom
copilot/organize-two-thumb-settings
May 23, 2026
Merged

Improve two-thumb typing settings#6
AsafMah merged 18 commits into
mainfrom
copilot/organize-two-thumb-settings

Conversation

@AsafMah

@AsafMah AsafMah commented May 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • reorganize two-thumb typing settings into clearer mode selectors
  • remove obsolete tap-during-swipe controls
  • improve gesture debug overlay behavior
  • add an opt-in setting to only auto-space after swiped words

Tests

  • ./gradlew.bat :app:testStandardDebugUnitTest --tests "helium314.keyboard.latin.InputLogicTest.tapOnlyCombiningWordDoesNotAutospaceWhenGestureGateEnabled" --tests "helium314.keyboard.latin.InputLogicTest.tapOnlyCombiningWordDoesNotShowAutospaceIndicatorWhenGestureGateEnabled" --tests "helium314.keyboard.latin.InputLogicTest.gestureCombiningWordStillAutospacesWhenGestureGateEnabled" --tests "helium314.keyboard.latin.InputLogicTest.tapThenGestureCombiningWordStillAutospacesWhenGestureGateEnabled" --tests "helium314.keyboard.settings.SettingsContainerTest.twoThumbGestureGatedAutospaceSettingIsRegistered" --no-daemon
  • ./gradlew.bat :app:assembleStandardDebug --no-daemon

Manual testing

  • installed standard debug APK on connected device

lurebat and others added 11 commits May 23, 2026 09:12
Group the screen around user-facing behavior, remove unimplemented controls from the visible/searchable settings registry, and rename confusing options with clearer labels.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace low-level two-thumb controls with user-facing spacing and backspace behavior selectors, derive multipart internals from non-normal spacing, and add whole-word backspace handling.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Drop the old tap-during-swipe preference and suppression path now that combining and multi-part word composition cover the useful tap/swipe behavior without the flag.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Color-code raw points by pointer, draw per-finger paths, mark tap-like runs and start/end points, and show synthetic hint points as blue crosses for easier two-thumb diagnosis.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep gesture debug fragments visible during combining mode, add typed tap points to the overlay, and clear the overlay when combining mode ends so fragmented words can be inspected end-to-end.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Persist accumulated debug fragments until the next word starts, darken later fragments progressively, and log fragment/tap/clear events while debug points are enabled.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep accumulated gesture debug fragments visible after commit, clear them on the first tap or swipe after a space boundary, and use stronger fragment color cycling with progressive darkening.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
When gesture debug points are enabled, log top candidates, merge state, seed state, and final composed text to make bad multi-part recognition reproducible from logcat.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
When a second finger lands during an active gesture, keep it pending as a tap fragment unless it moves far enough to become a real gesture; commit pending taps as separate letter fragments so they don't distort the active swipe path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Avoid promoting intended tap fragments into gestures because of small finger jitter; promote only after the pending tap leaves its original key.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the “Two-thumb typing (experimental)” feature set by consolidating multiple low-level toggles into clearer mode selectors, removing obsolete tap-during-swipe controls, enhancing gesture debug overlay behavior, and adding an opt-in “auto-space only after swipes” option that affects combining-mode auto-commit behavior.

Changes:

  • Reworked two-thumb typing settings UI into synthetic “Spacing mode” and “Backspace behavior” selectors, and removed obsolete tap-during-swipe preferences.
  • Added combining_autospace_only_after_gesture setting and updated combining-mode commit/indicator behavior + unit tests.
  • Improved gesture debug overlay behavior (fragment preservation across gestures while combining, richer overlay rendering, and more debug logging when enabled).

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
docs/TWO_THUMB_TYPING_INTERNALS.md Removes tap-during-swipe references and updates internals notes to match current architecture.
docs/FEATURES.md Updates public documentation to reflect removal of tap-during-swipe and clarifies tap/swipe combining wording.
dev-log.md Adds a detailed development log of the settings rework, tap-during-swipe removal, and gesture-gated autospace work.
app/src/test/java/helium314/keyboard/settings/SettingsContainerTest.kt Adds a registration test for the new autospace gating preference key.
app/src/test/java/helium314/keyboard/latin/InputLogicTest.kt Adds tests for gesture-gated autospace behavior and autospace indicator suppression; wires a shared MainKeyboardView mock.
app/src/main/res/values/strings.xml Adds new two-thumb settings strings and removes tap-during-swipe strings; adds strings for the new autospace gating toggle.
app/src/main/java/helium314/keyboard/settings/SettingsContainer.kt Adds synthetic keys (SettingsWithoutKey) for spacing/backspace mode selectors.
app/src/main/java/helium314/keyboard/settings/screens/TwoThumbTypingScreen.kt Implements the new settings grouping and the spacing/backspace mode selector preferences.
app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java Removes tap-during-swipe fields; adds autospace gating field; forces multipart flags on for non-normal two-thumb spacing modes.
app/src/main/java/helium314/keyboard/latin/settings/Settings.java Removes tap-during-swipe pref keys; adds PREF_COMBINING_AUTOSPACE_ONLY_AFTER_GESTURE.
app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt Removes tap-during-swipe defaults; adds autospace gating default; changes default autospace suggestion mode.
app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java Adds gesture-gated autospace behavior, adjusts combining indicator logic, adds debug-overlay clearing behavior, and adds debug logging for gesture candidates/merge.
app/src/main/java/helium314/keyboard/keyboard/PointerTracker.java Removes tap-during-swipe suppression; adds tap-fragment handling during an in-progress gesture; adjusts overlay clearing behavior.
app/src/main/java/helium314/keyboard/keyboard/MainKeyboardView.java Exposes combining/debug overlay state via new DrawingProxy methods.
app/src/main/java/helium314/keyboard/keyboard/internal/GestureDebugPointsDrawingPreview.java Enhances debug overlay rendering (fragment coloring, markers, synthetic crosses) and changes snapshot storage to accumulate fragments.
app/src/main/java/helium314/keyboard/keyboard/internal/DrawingProxy.java Adds isCombiningModeActiveForDebug() and hasGestureDebugPoints() to support improved overlay behavior.
Agents.md Updates feature list description to remove tap-during-swipe mention.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread app/src/main/java/helium314/keyboard/settings/screens/TwoThumbTypingScreen.kt Outdated
Comment thread app/src/main/java/helium314/keyboard/settings/screens/TwoThumbTypingScreen.kt Outdated
lurebat and others added 3 commits May 23, 2026 17:03
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 17 changed files in this pull request and generated 7 comments.

Comment thread app/src/main/java/helium314/keyboard/keyboard/MainKeyboardView.java
Comment thread app/src/main/java/helium314/keyboard/settings/screens/TwoThumbTypingScreen.kt Outdated
Comment thread docs/TWO_THUMB_TYPING_INTERNALS.md
Comment thread docs/FEATURES.md
Comment thread Agents.md
Comment thread app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt
Comment thread docs/TWO_THUMB_TYPING_INTERNALS.md
AsafMah and others added 3 commits May 23, 2026 20:29
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@AsafMah
AsafMah merged commit 953b1c1 into main May 23, 2026
1 check passed
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