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>
This commit is contained in:
@@ -18,6 +18,7 @@ sqlite_dep = dependency('sqlite3', version: '>= 3.0')
|
||||
gobject_dep = dependency('gobject-2.0', version: '>= 2.58')
|
||||
xml_dep = dependency('libxml-2.0', version: '>= 2.0')
|
||||
soup_dep = dependency('libsoup-3.0', version: '>= 3.0')
|
||||
gtk_dep = dependency('gtk4', version: '>= 4.0')
|
||||
|
||||
# Source files
|
||||
models = files(
|
||||
@@ -28,6 +29,7 @@ models = files(
|
||||
'src/models/search-filters.vala',
|
||||
'src/models/notification-preferences.vala',
|
||||
'src/models/reading-preferences.vala',
|
||||
'src/models/bookmark.vala',
|
||||
)
|
||||
|
||||
# Database files
|
||||
@@ -37,6 +39,18 @@ database = files(
|
||||
'src/database/subscription-store.vala',
|
||||
'src/database/feed-item-store.vala',
|
||||
'src/database/search-history-store.vala',
|
||||
'src/database/bookmark-store.vala',
|
||||
)
|
||||
|
||||
# Repository files
|
||||
repositories = files(
|
||||
'src/repository/bookmark-repository.vala',
|
||||
'src/repository/bookmark-repository-impl.vala',
|
||||
)
|
||||
|
||||
# Service files
|
||||
services = files(
|
||||
'src/service/search-service.vala',
|
||||
)
|
||||
|
||||
# Parser files
|
||||
@@ -70,6 +84,14 @@ database_lib = library('rssuper-database', database,
|
||||
vala_args: ['--vapidir', 'src/database', '--pkg', 'sqlite3']
|
||||
)
|
||||
|
||||
# Repository library
|
||||
repository_lib = library('rssuper-repositories', repositories,
|
||||
dependencies: [glib_dep, gio_dep, json_dep, sqlite_dep],
|
||||
link_with: [models_lib, database_lib],
|
||||
install: false,
|
||||
vala_args: ['--vapidir', 'src/repository']
|
||||
)
|
||||
|
||||
# Parser library
|
||||
parser_lib = library('rssuper-parser', parser,
|
||||
dependencies: [glib_dep, gio_dep, json_dep, xml_dep],
|
||||
@@ -113,7 +135,27 @@ fetcher_test_exe = executable('feed-fetcher-tests',
|
||||
install: false
|
||||
)
|
||||
|
||||
# Notification service test executable
|
||||
notification_service_test_exe = executable('notification-service-tests',
|
||||
'src/tests/notification-service-tests.vala',
|
||||
dependencies: [glib_dep, gio_dep, json_dep, gobject_dep],
|
||||
link_with: [models_lib],
|
||||
vala_args: ['--vapidir', '.', '--pkg', 'gio-2.0'],
|
||||
install: false
|
||||
)
|
||||
|
||||
# Notification manager test executable
|
||||
notification_manager_test_exe = executable('notification-manager-tests',
|
||||
'src/tests/notification-manager-tests.vala',
|
||||
dependencies: [glib_dep, gio_dep, json_dep, gobject_dep, gtk_dep],
|
||||
link_with: [models_lib],
|
||||
vala_args: ['--vapidir', '.', '--pkg', 'gio-2.0', '--pkg', 'gtk4'],
|
||||
install: false
|
||||
)
|
||||
|
||||
# Test definitions
|
||||
test('database tests', test_exe)
|
||||
test('parser tests', parser_test_exe)
|
||||
test('feed fetcher tests', fetcher_test_exe)
|
||||
test('notification service tests', notification_service_test_exe)
|
||||
test('notification manager tests', notification_manager_test_exe)
|
||||
|
||||
Reference in New Issue
Block a user