github Darknetzz/jotty-android v1.3.6

latest release: dev-latest
4 hours ago

Install

Download jotty-android-1.3.6.apk from this release (release-signed when CI secrets are configured).

*Updating from an older -debug.apk or mixed signing? Android may show "App not installed" — uninstall once, then install this APK. Your Jotty server data is unchanged.

Full changelog: https://github.com/Darknetzz/jotty-android/blob/v1.3.6/CHANGELOG.md


Added

  • Biometric note unlock (settings) — Settings → Security: biometric status, auto-prompt on open, offer to remember passphrase after password decrypt, and clear all remembered passphrases. Per-note storage unchanged.

  • Biometric decrypt UX — Shared unlock helper; decrypt dialog offers fingerprint when a passphrase is saved; auto-prompt on open respects the setting; errors show via snackbar; cancel allows auto-prompt to retry.

  • Checklist conflict copies UX — Offline checklists list shows the same conflict-copies banner and “View copies” flow as notes (getConflictCopiesFlow, ConflictCopiesBanner).

  • Note detail architectureNoteDetailViewModel and NoteDetailActions (ApiNoteDetailActions, OfflineNoteDetailActions); offline detail no longer stubs JottyApi.

  • List data sourcesNotesListDataSource / ChecklistsListDataSource with online and offline implementations (data/repository/ListDataSources.kt) as a step toward unified list screens.

  • Tests — Checklist sync conflict tests; ViewModel tests for offline notes/checklists and NoteDetailViewModel.

Changed

  • Note detail logging — Encryption debug lines use AppLog (gated by Settings → debug logging) instead of unconditional Log.
  • Shared offline UIConflictCopiesBanner in ui/common/; notes and checklists list screens use it.

Fixed

  • HTML tables in notes — Notes saved with Jotty’s default HTML table format (Profile → table syntax: HTML) now render as proper tables in note view; GFM pipe tables were already supported.
  • Biometric decrypt empty note body — Blank session cache or empty decrypt result no longer skips the encrypted placeholder; biometric unlock uses the same onDecrypted path as passphrase decrypt, requires a parsed encrypted body before auto-prompt, and surfaces failure when the biometric cipher or ciphertext is missing.
  • Online note delete from detail — Overflow → Delete now calls deleteNote on the server (previously only closed detail and refreshed the list).
  • Checklist item rename save failure (#33) — Replaced unsupported checklist text update calls with a leaf-only rename flow (add replacement item, then delete original), including offline replay support and clearer UI hints for parent/project items.

Documentation

  • Checklist reorder (#29) — Expanded CHECKLIST_REORDER.md (web server-action capture vs REST, id vs index-path); upstream/CHECKLIST_REORDER_API_PROPOSAL.md for fccview/jotty. In-app reorder deferred until that API exists.
  • docs/TODO.md — Populated with follow-up backlog; docs/OFFLINE_NOTES.md — marked offline checklists as implemented in future-improvements list.

Don't miss a new jotty-android release

NewReleases is sending notifications on new releases.