Added
- Debug logging — Settings → General → "Debug logging": when enabled, extra details (e.g. decryption failure step: parse, key derivation, or auth) are written to logcat for troubleshooting.
- Accessibility — Meaningful content descriptions for icons (Search, Link, Encrypt, Decrypt, Disconnect, About, etc.) so TalkBack and other assistive technologies announce them correctly.
- Encrypt/decrypt loading — Encrypt and decrypt run on a background thread so the UI stays responsive; dialogs show a spinner and disable inputs while the operation runs.
Fixed
- Note decryption — Base64 decoding now strips whitespace and adds padding when needed; leading BOM in the encrypted body is trimmed so more payloads (including from Jotty web) decrypt correctly.
- Deprecations — Replaced deprecated
Icons.Filled.ArrowBack,Note,Logoutwith AutoMirrored variants; SwipeToDismissBox no longer uses deprecatedconfirmValueChange(replaced withLaunchedEffecton state).
Changed
- Encrypt dialog — If encryption fails (e.g. returns null), the dialog shows "Encryption failed. Please try again." instead of doing nothing.
- Settings chips — Theme mode, theme color, content padding, and start screen chips use FlowRow so they wrap on small screens.
- Empty state — Empty-list icon uses the screen title as content description for accessibility.
Technical
- SettingsRepository:
debugLoggingEnabled,setDebugLoggingEnabled; KEY_DEBUG_LOGGING. - AppLog:
isDebugEnabled(),setDebugEnabled();d()only logs when debug is enabled. - XChaCha20Decryptor: step-wise failure logging (parse / key derivation / auth); BOM trim; base64 whitespace strip and padding.
- JottyAppContent: collects
debugLoggingEnabledand syncs to AppLog. - NotesScreen: decrypt in
Dispatchers.Defaultwith loading state; encrypt inDispatchers.DefaultwithencryptErrorstate; EncryptNoteDialog acceptsencryptError,isEncrypting. - Unit tests: encrypt/decrypt round-trip, wrong passphrase, trimmed passphrase, URL-safe base64 decrypt.
- AGENTS.md: debug logging, background encrypt/decrypt, "Where to change what" for logging.