Repository navigation
v0.3.0 "Pill & Polish"
v0.3.0 — "Pill & Polish" — 2026-09-05
⚡ Performance
- Fixed homescreen jank with many notes:
NoteListScreenno longer runsBlurTextper item. Previously each word spawned 3Animatables +RenderEffect.createBlurEffectper frame → 500-800 concurrent blur animations on 50 notes. Now homescreen uses staticText(0 animatables).BlurTextitself stripped toalpha + 12dp slide(noRenderEffect) for editor-only pop.app/src/main/java/com/folius/dotnotes/ui/NoteListScreen.kt:435+BlurText.kt:70
✨ Added
- Grid view —
LazyVerticalStaggeredGrid(2 cols) withGridNoteItem, toggle via pill menu (List ↔ Grid), persisted inDataStore(SettingsManager.VIEW_MODE,NoteViewModel.viewMode). Survives restart. - Visual tutorial —
TutorialOverlay+TutorialScreenwith spotlight (pill/notes), interactive steps (must tap/expand pill), fixed 92dp+72dp bubble height to prevent jump. Auto-shown once (hasShownGestureHints), re-open from Settings → Help → View tutorial.MainActivityaddstutorialroute andonTutorialClick. - Pinned always on top —
NoteViewModelnow partitionssortedWith(compareByDescending isPinned)after sort, so pinned notes stay above regardless of tab (NOTES/CHECKLISTS/MAPS) instead of being filtered out.
💄 Changed
- Pill polish — corner radius now animates
28dp ↔ 32dpviaanimateDpAsStateon all screens (list/editor/map/trash/secret) instead of snap50 ↔ 32. Feels springy (damping 0.85, stiffness 300). - Settings redesign — segmented groups (
Vault,Appearance,Intelligence,Storage & Backup,Help), inline expandable AI fields & storage detail, theme squircle picker inside single card,surfaceContainerLowgrouping. Fixes prior broken duplicate pill overlay. - Note cards — color tint
0.22f+compositeOver(surfaceContainerLow)+0.35fborder keeps hue visible without killing readability; grid cards0.24f/0.38fborder. - Edge-to-edge —
Theme.ktnow setswindowBackground+ transparent bars,themes.xmlwindowBackground @android:color/black+ transparent status/nav to prevent white flash. - NoteEditor — removed redundant
Mappill action (maps already via SEARCH tab).
Fixed
- Settings
hasInitializedsync replaced withLaunchedEffectper-field (no stale state on rotation). MainActivityScaffoldpadding nowfillMaxSize().padding(padding)+NavHostbackground to avoid gap.SecretNotes/Trashpill corner parity.
Diff
14 files +737/-514 vs main@0f834fa → 69c7ad4 — 2 new files (TutorialScreen.kt, TutorialOverlay.kt), 12 modified.