6 Commits

Author SHA1 Message Date
bb6c54e7e5 feat: Add timezone configuration with user-selectable preferences and notification formatting
- Add TimezonePreferences to SettingsViewModel and TodoNotificationReceiver entry point
- Create timezone settings section in SettingsScreen with dropdown selector for common timezones
- Apply user timezone to notification date formatting in TodoNotificationReceiver
- Refactor TodoScreen FAB into expandable menu with separate AI Brain Dump and manual task creation options
- Add animated sub-FABs with labels
2026-02-13 22:51:41 -05:00
bccd5ea2d4 feat: Add comprehensive todo management system with Gemini-powered brain dump analysis
- Add TodoEntity, TodoDao, TodoRepository, and TodoRepositoryImpl for local todo storage with sync support
- Implement TodoViewModel with CRUD operations, group management, and subtask handling
- Create TodoScreen with Kanban-style board view, group-based organization, and drag-to-reorder support
- Add BrainDumpSheet for AI-powered task extraction from natural language input using Gemini API
- Implement TodoNot
2026-02-13 15:51:39 -05:00
fc0fe3b30b feat: Add Markdown preprocessing utility to standardize rendering across all views
- Create MarkdownUtils.preprocessMarkdown() for consistent Markdown normalization
- Apply preprocessing to LinkDetailsView description rendering
- Apply preprocessing to MarkdownPreview and MarkdownReader components
- Bump version to 1.4.0 (VERSION_CODE 13)
2026-02-13 08:29:48 -05:00
aa32ff1c2b feat: Refine audio playback eligibility logic with URL validation and classifier fallback
- Replace simple tag-based audio detection with multi-condition validation in isAudioPlayable()
- Add AudioUrlValidator.isStreamable() check to verify URL technical playability
- Implement AudioClassifier.isAudioUrl() fallback for platform/stream recognition without explicit tags
- Prevent Play button display for audio-tagged articles without streamable URLs
- Add comprehensive French documentation explaining
2026-02-12 16:39:10 -05:00
e742502bdc feat: Add PENDING_DELETE filter to all paginated queries and implement accordion-style drawer navigation
- Add sync_status != 'PENDING_DELETE' condition to all PagingSource queries in LinkDao (getAllLinksPaged, searchLinks, searchLinksFullText, getLinksByTag, getLinksByMultipleTags, getLinksInCollectionPaged, getDeadLinks, getPinnedLinksPaged)
- Update LinkRepositoryImpl to exclude PENDING_DELETE items in dynamic query builder and multi-tag filtering
- Replace independent drawer accordion states
2026-02-12 11:24:28 -05:00
b9efb14b8d feat: Implement automated versioning system with PowerShell build script and centralized version management
- Add version.properties file as single source of truth for VERSION_NAME and VERSION_CODE
- Create build.ps1 script with automated version bumping (Major/Minor/Patch/None) and build orchestration
- Update app/build.gradle.kts to read version from version.properties instead of hardcoded values
- Display dynamic version info in Settings screen using BuildConfig.VERSION_NAME and VERSION_CODE
- Add
2026-02-12 10:08:58 -05:00