Commit Graph

36 Commits

Author SHA1 Message Date
ba1e2e96e7 feat: implement iOS UI integration with ViewModels
- Add SwiftUI views for feed list, detail, add feed, settings, and bookmarks
- Connect all views to ViewModels using @StateObject
- Implement pull-to-refresh for feed list
- Add error handling and loading states to all views
- Create FeedItemRow view for consistent feed item display
- Add toFeedItem() extension to Bookmark for UI integration
- Update FeedDetailView to use sync methods
- Update BookmarkView to use FeedService for unstar operations

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-31 06:50:11 -04:00
f2a22500f8 Fix iOS settings store code review issues
- 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.
2026-03-31 06:29:48 -04:00
d09efb3aa2 Fix Linux background sync service code review issues
- 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.
2026-03-31 06:26:52 -04:00
9ce750bed6 Fix Android notification service code review issues
- Fix invalid notificationManager extension property (line 60)
- Remove invalid getChannelId() calls (line 124)
- Fix NotificationCompat.Builder to use method chaining (line 140)
- Remove undefined newIntent() call (line 154)
- Add unit tests for NotificationService, NotificationManager, NotificationPreferences

All fixes address issues identified in code review for FRE-536.
2026-03-31 06:24:19 -04:00
f8d696a440 Fix NotificationService authorization and isAvailable async issues
- 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
2026-03-31 05:34:21 -04:00
8f20175089 Fix StackOverflowError in SyncWorker chunked() extension
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.
2026-03-31 02:11:44 -04:00
dd4e184600 Fix critical iOS notification service issues
- Fixed authorization handling in NotificationService
- Removed invalid icon and haptic properties
- Fixed deliveryDate API usage
- Removed invalid presentNotificationRequest call
- Fixed notification trigger initialization
- Simplified notification categories with delegate implementation
- Replaced UNNotificationBadgeManager with UIApplication.shared.applicationIconBadgeNumber
- Eliminated code duplication in badge update logic
- Fixed NotificationPreferencesStore JSON encoding/decoding
2026-03-30 23:54:39 -04:00
14efe072fa feat: implement cross-platform features and UI integration
- iOS: Add BackgroundSyncService, SyncScheduler, SyncWorker, BookmarkViewModel, FeedViewModel
- iOS: Add BackgroundSyncService, SyncScheduler, SyncWorker services
- Linux: Add settings-store.vala, State.vala signals, view widgets (FeedList, FeedDetail, AddFeed, Search, Settings, Bookmark)
- Linux: Add bookmark-store.vala, bookmark vala model, search-service.vala
- Android: Add NotificationService, NotificationManager, NotificationPreferencesStore
- Android: Add BookmarkDao, BookmarkRepository, SettingsStore
- Add unit tests for iOS, Android, Linux
- Add integration tests
- Add performance benchmarks
- Update tasks and documentation

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-30 23:06:12 -04:00
6191458730 Implement iOS settings/preferences store
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
- 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>
2026-03-30 17:07:42 -04:00
c2e1622bd8 restructure
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
2026-03-30 16:39:18 -04:00
a8e07d52f0 ignore build
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
2026-03-30 16:34:12 -04:00
8e075a655d duplicate
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
2026-03-30 16:33:22 -04:00
3a367408cc fluff
Some checks failed
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
2026-03-30 16:32:11 -04:00
a6da9ef9cf Auto-commit 2026-03-30 16:30 2026-03-30 16:30:46 -04:00
5fc7ed74c4 Convert remaining tasks to issues (FRE-527 through FRE-551) 2026-03-30 13:00:37 -04:00
e5197e6a2d linux feed-fetcher
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
2026-03-30 12:33:35 -04:00
1fe72401f0 clean 2026-03-30 11:26:33 -04:00
533dc1ba14 11: Update README to mark Linux feed parser as complete 2026-03-30 09:40:58 -04:00
bbc1363bcc 11: Implement Linux RSS/Atom feed parser 2026-03-30 09:38:06 -04:00
d84b8ff4e8 Implement Android RSS/Atom feed parser
- 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
2026-03-30 09:01:49 -04:00
ac5250b2af Fix database layer migration and test issues
- 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.
2026-03-30 00:33:39 -04:00
18cf219a7d type sensitive?
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
2026-03-30 00:03:12 -04:00
e572437f37 linux db
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
2026-03-30 00:02:12 -04:00
dc17a71be4 grundle
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
2026-03-29 23:04:47 -04:00
473457df2f feat: implement Android database layer with Room
- 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
2026-03-29 20:41:51 -04:00
f0922e3c03 Implement Linux data models (C/Vala)
- Add FeedItem, Feed, FeedSubscription models
- Add SearchResult, SearchFilters, SearchQuery models
- Add NotificationPreferences, ReadingPreferences models
- Implement JSON serialization/deserialization for all models
- Add equality comparison methods
- Following GNOME HIG naming conventions
- Build system configured with Meson/Ninja
2026-03-29 17:40:59 -04:00
fdd4fd8a46 feat: implement Android data models in Kotlin
- 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
2026-03-29 15:40:38 -04:00
fade9fd5b1 feat: Update iOS submodule with data models implementation 2026-03-29 15:13:51 -04:00
d346b527e6 migration start
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
2026-03-29 14:12:17 -04:00
af87f9f571 Design shared data models for native platforms
- Define core entities: FeedItem, FeedSubscription, SearchHistoryItem
- Document entity relationships with diagram
- Create database schema with SQLite and FTS5
- Provide type mapping guide for Swift/Kotlin/C
- Define value types vs reference types
- Document enumeration types for all platforms
- Specify serialization/deserialization requirements
- Outline indexing strategy for performance
- Include memory considerations and future extensibility
2026-03-29 14:02:34 -04:00
5f4d5a52e8 docs: Document current Expo architecture for native migration
- Document technology stack (Expo, TypeScript, Zustand, SQLite)
- Map out all data models and types
- Document service dependencies and architecture
- Create component dependency diagrams
- Document data flow for feed sync and search
- Provide migration checklist with priorities
- Identify pure TypeScript vs native-dependent services

This analysis provides the foundation for migrating business logic
from Expo/TypeScript to native platforms (iOS, Android, Linux).
2026-03-29 11:43:46 -04:00
a7d4f4e4d3 pause 2026-03-29 09:21:33 -04:00
821e71b387 fix import 2026-03-28 23:58:07 -04:00
cf46257521 livin on the carary 2026-03-28 23:53:42 -04:00
e56e3ba531 init 2026-03-28 23:51:50 -04:00
0a477300f4 Initial commit
Generated by create-expo-app 3.5.3.
2026-03-28 10:37:16 -04:00