- Background tasks: a JS implementation of the native task module for iOS
(NativeBackgroundTasksModule.ios.ts) with the Android module's contract:
per-queue order, 3 concurrent chapter downloads, retries with a delay,
pause/resume/cancel interruptions, persistence across launches. Tasks run
while the app is open; periodic library updates and backups are not
scheduled on iOS. The module is Android-only in autolinking now.
- Reader assets: WKWebView will not load file:// assets into a page whose base
URL is the source's site, so on iOS the reader CSS, JS and font are inlined
(scripts/embed-reader-assets.mjs, src/utils/readerAssets). Downloaded
chapters get a file: base URL and file access on iOS. Android is unchanged.
- Native iOS: downloadFile implemented with URLSession (plugin installs and
chapter images); volume-button setActive added as a no-op (it is called on
every chapter).
- Share receiver stub and silent toasts on iOS; TrackSheet uses showToast.
- app.json: bundle id br.dev.marcospaulo.lnreader, http sources allowed, Files
sharing, deployment target 16.4.
- Fresh installs start with the open-lab plugin repository.
- scripts/build-ios-unsigned.sh and docs/ios-sidestore.md.
Verified on Linux: tsc, eslint, all Jest suites (plus new iOS queue tests),
expo prebuild for iOS, autolinking, and iOS/Android release JS bundles.
Not yet built with Xcode or run on a device.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* use new ids
* refactor in appearance settings
* fix lint
* remove setThemeMode from handleThemeSelect
* fix type logic
* use context for theme
* shorten animation
* adjusted LanguagePickerModal
* Fix Accent Color picker
* fix bottom navigation coloring
* log error instead of crashing when no theme context is available
* init
* Change from react-native-dotenv to react-native-config as dotenv leaks
env variables that set mmkv in test mode.
* upgrade debs
* upgrade mmkv
* fix db migration for new app builds
* update reanimated
* fix tests
* fix lint
* cleanup
* Update JumpToChapterModal.tsx
* fix settings.gradle
* first attempt
* first attempt
* added first useNovel tests
* more tests
* more tests
* resolved all test issues
* added test-utils
* add a few component tests
* add TESTIGN.md
* add testing gh action
* fixed minor issues
* fixed minor issues
* added .jj to .gitignore
* chore: Add drizzle-orm and drizzle-kit dependencies to package.json and pnpm-lock.yaml
* update debs
* Edit configs
* create drizzle schema
* generate drizzle migration
* db manager stuff
* Delete unused files
* Update DB Manager
* Rework CategoryQueries and related
* rewrite chapterQueries
* Type safety for chapter order and filter
* Better filter handling
* added queue
* added back database triggers
* Refactor HistoryQueries and LibraryQueries
* fix type issues
* refactor StatsQueries
* refactor NovelQueries
* renamed schemas
* refactor more db calls
* refactor libraryUpdateQueries
* removed deprecated code
* added extracted queries
* fix updates screen issue
* change to op-sqlite
* Update manager.ts
* Update RepositoryQueries
* update packages
* Update NovelQueries
* Update CategoryQueries.ts
* db testing environment v1 (AI)
* Refactor App component to use Suspense for loading state and update database initialization logic. Change drizzle-orm version to 0.45.1 and adjust related database queries for improved error handling and async operations. Clean up unused code and update types for better type safety.
* updated tests
* change db location to default expo-sqlite location
* fix async/sync bugs
* resolve rebase problems
* Added tests for db creation + migration
* update drizzle
* add missing journals to migrations.js
* wrap testDbManager in Proxy to be async
* add db initialization test
* fix lint errors
* improved dbManager.batch function
* remove unused file
* fix rebase conflicts
* use getColumns instead of getTableColumns
* fix lint errors
* fix release build not being able to start
* remove disable lint rule
* improved useLiveQuery
* Resolve issue with the db queue constructor options
* Fix database query issues in library and stats
- Add missing await to all stats query functions
- Remove unnecessary type casts on query results
- Fix downloaded-only filter to use gt(0) instead of eq(1)
---------
Co-authored-by: CD-Z <github.verify097@passmail.com>
feat(tts): refactor reading logic and add new settings (voice, speed, pitch, auto page advance)
- Improved how TTS reads page content for smoother playback
- Added settings for voice selection, speed, and pitch control
- Added auto page advance support
- Added scroll-to-top behavior after advancing pages
- Updated UI to expose new TTS configuration options
[skip ci]