Skip to content

Correct keyboard runtime defects found during the v4.2.0 integration review #152

Description

@AsafMah

Describe the bug
An independent full fork/upstream-delta review of v4.2.0 merge 0ab4172f found concrete incoming runtime defects, plus two retained keyboard-state bugs. They must be corrected before the integrated build is treated as ready for installation. This is regression repair, not a redesign or another gesture experiment.

To Reproduce
The correction work tracks separate fixtures for each item below: isolated sound ZIPs, password/web-password EditorInfo, controlled camera-provider futures and executor errors, delayed OCR recognition, math expressions and exact cursor suffixes, touchpad MotionEvents, and activity recreation. No destructive fixture may operate outside a temporary test context.

Expected behavior

  • K1: sound-pack manifest IDs/destinations cannot escape or delete the pack root.
  • K2: inline math never reads/displays password text or stores protected-session history.
  • K3: stopping/releasing OCR invalidates delayed camera startup.
  • K4: replacing/detaching input views releases their owned camera resources.
  • K5: capture result/error UI is delivered on Main, never the camera executor.
  • K6: dictation does not silently change global software microphone mute.
  • K7: cancelled/stale OCR initialization and recognition cannot reopen UI or modify clipboard/editor.
  • K8: math acceptance replaces only the verified original expression range, preserving delimiters/whitespace.
  • K9: unary negation respects operator precedence.
  • K10: percentages respect surrounding operator semantics.
  • K11: final finger-up preserves a valid pending two-finger tap decision.
  • K12: clipboard draft text and selection survive activity recreation.
  • K13: generated sound manifests preserve nested relative audio paths.
  • K14: failed OCR plugin replacement preserves the working installation.
  • K15: screenshot refresh recognizes visible floating keyboards without background polling while hidden.
  • K16: OCR transitions clear both text-edit and persistent-selection state.
  • K17: the existing OCR auto-insert preference works only for a still-current request/editor.
  • K18: the existing flash-persistence preference restores the choice while hardware is off after closure.
  • K19: local and downloaded OCR plugin imports perform heavy work off Main.
    Every item requires a failing-before regression and verified correction. Preserve the four flavors, network/addon boundaries, current defaults and all unrelated upstream functionality.

Screenshots
N/A — code review with targeted runtime fixtures; no device camera/native-plugin validation is claimed.

App version & Flavor
LeanTypeDual v4.2.0 integration 0ab4172f; correction work based on 4273800bf and later reviewed integration commits. K11/K12 predate this merge; other items are incoming or merge-integration defects. Applies where the corresponding feature is available.

Device Info

  • Model: no physical-device result claimed by this review.
  • OS version: controlled Robolectric scenarios; OEM/camera/plugin behavior remains a separate verification boundary.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions