- Add AppGroupID key to Info.plist (group.com.rssuper.shared)
- Existing unit tests already cover SettingsStore functionality
This fix addresses issues identified in code review for FRE-538.
- Fix subprocess_helper_command_str to use Process.spawn_command_line_sync (line 148)
- Improve comment for fetch_subscriptions_needing_sync placeholder (line 303)
These fixes address issues identified in code review for FRE-531.
- Fixed requestAuthorization to use completion handler instead of throws
- Fixed isAvailable property to use async callback pattern
- Updated NotificationManager to use async isAvailable
Fixes code review feedback from FRE-535
The custom chunked() extension function recursively called itself instead of
using Kotlin's standard library chunked() method, causing StackOverflowError.
Removed the buggy custom extension - Kotlin's List<T>.chunked() is already
available in the standard library.
- Created Settings directory with core store files
- Implemented SettingsStore with UserDefaults/App Group support
- Created AppSettings for app-wide configuration
- Created UserPreferences for unified preferences access
- Added enableAll/disableAll methods to ReadingPreferences
- Added enableAll/disableAll methods to NotificationPreferences
- Created SettingsMigration framework for version migrations
This implements the core settings infrastructure for iOS.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
- Add FeedParser.kt with automatic feed type detection
- Add RSSParser.kt for RSS 2.0 feeds
- Add AtomParser.kt for Atom 1.0 feeds
- Add comprehensive unit tests for both parsers
- Support iTunes namespace and enclosures
- Fix pre-existing compilation issues in the codebase
- Update build.gradle.kts with proper dependencies and AGP 8.5.0
- Embed schema directly in database.vala for simpler test deployment
- Fix test subscription_id values to match actual subscription IDs
- Fix search history test to handle non-deterministic ordering
All database tests now pass successfully.
- Add SubscriptionEntity, FeedItemEntity, SearchHistoryEntity
- Create SubscriptionDao, FeedItemDao, SearchHistoryDao with CRUD operations
- Implement RssDatabase with FTS5 virtual table for full-text search
- Add type converters for Date, String lists, and FeedItem lists
- Implement cascade delete for feed items when subscription is removed
- Add comprehensive unit tests for all DAOs
- Add database integration tests for entity round-trips and FTS
- Configure Room testing dependencies
- Add FeedItem, Feed, FeedSubscription models with Moshi JSON support
- Add SearchResult, SearchFilters models with sealed classes for enums
- Add NotificationPreferences, ReadingPreferences models
- Add Room Entity annotations for database readiness
- Add TypeConverters for Date and List<String> serialization
- Add Parcelize for passing models between Activities/Fragments
- Write comprehensive unit tests for serialization/deserialization
- Write tests for copy(), equals/hashCode, and toString functionality