Skip to content

Release 1.1.16: phone editing, tuned by hand (app core 2.45.0) - #56

Merged
adibhanna merged 3 commits into
mainfrom
release/1.1.16
Sep 8, 2026
Merged

adibhanna merged 3 commits into
mainfrom
release/1.1.16

Conversation

@adibhanna

Copy link
Copy Markdown
Contributor

ZenNotes for Android 1.1.16 (versionCode 18): phone editing, tuned by hand

Port of the iPhone 1.9.7 round (zennotesiphone 2cc9b8f, 550e246, 45a72f8) so the two phones stay in step, plus app core 2.44.0 → 2.45.0 (pinned to 3301a29, one commit past the v2.45.0 tag and on upstream main).

What ships

  • Note gestures everywhere, a Home that survives rescans, editor fixes (c1b5d3c): every note row (Home Recent, Quick Notes, Tags, Archive, Trash) answers tap, long-press (the options sheet), swipe left (Archive / Delete, or Restore / Delete) and swipe right (pin), layered onto app-core's DOM by note-row-gestures.ts; the sheet in note-actions.tsx is lifted out of the drawer and carries data-ctx-menu so app-core's focus heal never raises the keyboard under it. installHomeGuard (nav.ts, installed from main.tsx) re-nulls the active tab that rewritePathsInTree restores on every rescan, so Home no longer bounces back to Tasks. Bullet / Checkbox / Heading insert their marker on a blank line; every editor view gets a scrollMargins source for the keyboard toolbar and the caret is re-revealed as the keyboard settles; CodeMirror's content defaults that turned off the keyboard's suggestions, autocorrect and capitalization are overridden per view.
  • Start screen setting (d04376a): Settings → Appearance → Start screen, Where I left off (default) or Home, cold launches only; the key is mirrored natively in bootstrap.ts like the layout and gesture prefs. The Play review of 1.1.15 asked for exactly this.
  • App core 2.45: arrow keys in the @, / and [[ menus (Fix(editor): arrow keys navigate the @, / and [[ menus again zennotes#707), the [[ picker hint, a self-hosted vault behind a proxy without WebSockets stays current (#734). The bridge contract bumps its version only; desktop vault.ts is untouched.
  • Version bump 1.1.16 / versionCode 18 (00c2725, with the pin). Native side unchanged (Capacitor 8.5 / SDK 36 / minSdk 24).

Verification (2026-09-08)

  • npm run typecheck clean and npm test 38/38 on d04376a; bundleRelease OK, manifest 1.1.16 / vc 18; AAB sha256 4e9501fc8d0ecea9dfdbd5b54b4760a84467b4403cbd8c519a6f86abd499eb10; Play read it as 18 (1.1.16), API 24+, target SDK 36, all ABIs, device coverage unchanged.
  • Emulator (API 35 AVD, fresh install): Gboard's suggestion strip and spell underlines in the note body; the keyboard toolbar's Bullet converts the line; long-press on Home and drawer rows opens the sheet with no keyboard; swipe-left reveal and tap-to-close; the Start screen card, and a force-stop plus relaunch lands on Home; Tasks → Home stays; caret above the toolbar at the end of a 40-paragraph note.
  • Not exercised on the AVD: the empty-line marker path (adb's End key never reached CodeMirror); pure CodeMirror code, verified on the iPhone simulator.

Release docs: docs/releases/v1.1.16/ (local). Play: 18 (1.1.16) submitted 2026-09-08, full rollout. Same round ships as ZenNotes for iOS 1.9.7.

The arrow keys work in the [[, @ and / menus again in app-core, which
the shell inherits; nothing else in the shell changes.

Claude-Session: https://claude.ai/code/session_015HNdWonTE8g6dPY2SkdsRS
Port of the iPhone shell's 1.9.7 round (zennotesiphone 2cc9b8f + 550e246),
so the two phones stay in step. Every note row now answers the drawer
rows' four gestures: tap opens, long-press opens the note options sheet,
swipe left reveals Archive / Delete (Restore / Delete on Archive and Trash
rows), swipe right pins or unpins.

- note-actions.tsx: the one options sheet plus its action helpers, lifted
  out of the drawer so app-core's lists share it; pins keyed by the vault
  root as everywhere in this shell. It carries app-core's data-ctx-menu
  marker so the focus heal never refocuses the editor under it, and the
  drawer is non-selectable so a long-press can't start a selection.
- note-row-gestures.ts: the gestures layered onto app-core's DOM rows
  (Home Recent, Quick Notes, Tags, Archive, Trash). Chromium's real
  contextmenu on long-press is swallowed by its capture handler, and the
  shell's own long-press hook leaves note rows alone.
- nav.ts installHomeGuard, installed first thing in main.tsx: app-core's
  rewritePathsInTree falls back to the leaf's first tab whenever the
  active tab is null, and refreshNotes runs it on every rescan, so Home
  flipped back to the first open tab (Tasks) within a second of arriving.
- EditorToolbar: Bullet / Checkbox / Heading insert their marker on a
  blank line (app-core's setBlockType skips blank lines), and the toolbar
  re-reveals the caret when it mounts.
- editor-keyboard-scroll: every editor view gets a scrollMargins source
  for the toolbar's height, and the caret is revealed as the keyboard
  settles — the last lines of a long note sat under the toolbar.
- editor-native-typing: CodeMirror's content defaults turn the keyboard's
  suggestions, autocorrect and capitalization off; overridden per view via
  contentAttributes so the note body types like any text field.
Settings › Appearance › Start screen (phones): "Where I left off" keeps
the cold-launch landing as it was; "Home" lands on Home on every cold
launch. Switching to another app and back is not a launch and never
moves the user. Stored like the gesture prefs and mirrored natively in
bootstrap.ts so it is back in localStorage before main.tsx reads it. The
Play review of 1.1.15 asked for exactly this; same setting as iPhone
1.9.7 (zennotesiphone 45a72f8).
@adibhanna
adibhanna merged commit f46cf33 into main Sep 8, 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.

1 participant