Commit Graph

175 Commits

Author SHA1 Message Date
Ecasept 89c43c1eef feat: Implement Time Tracking and Statistics (#1886) 2026-07-22 23:30:38 +05:30
Patrick Loser c3c891cea0 refactor: Migrate to Expo Managed Workflow (#1885)
* enable predictive back gesture

* upgrade to rn 85

* remove deprecated

* added timeout to theme switch

* fix plugin items hit registration

* fix SearchbarV2 hit registration

* fix loading spinner

* migrated to expo

* migrated to expo

* Fix reader footer animation

* working again

* added icons back

* added splashscreen

* clean up

* nitro epub

* fix

* remove .env.local from git tracking

* fix rn background actions not working

* moving custom permissions to app.json

* more cleanup

* fix epub import

* remove unused deps

* Further cleanup for gradle build types

* Update build.yml

* ignore android/ and ios/ as they are generated by CNG

* fix lint

* Delete ios directory

* Delete android directory

* fix lint

* fix test mocks

* update packages

* update eslint

* fix ThemeProvider placement

* fix test and lint

* Add BackgroundTask native module

* Add NativeFile changes

* first round of fixing compatibility issues

* added types for native modules
2026-07-22 23:29:53 +05:30
Rajarshee Chatterjee e4cf64a112 refactor: Migrate Background Tasks to Native Android Scheduling (#1889)
* refactor: Restructure Application Architecture

* feat: Support Batched Downloads And EPUB Imports

* feat: Add Download Checkpoint Recovery
2026-07-22 09:21:18 +05:30
Rajarshee Chatterjee 4404494ec9 fix(database): Repair Migration History For Scanlator Column 2026-07-19 19:21:19 +05:30
Luigi 98a2a1d725 feat: Implement Scanlator Filtering (#1864)
* feat: implement scanlator filtering

* fix test
2026-07-15 16:42:35 +05:30
Rajarshee Chatterjee 52d5c99c46 fix: Order EPUB Chapters Across Paginated Pages (Closes #1762) 2026-07-02 01:27:44 +05:30
Gaurav Tupe 2cd5a97ee8 fix: await database operations inside transactions (#1845)
fix:await db write operations in transactions
2026-05-10 19:31:30 +02:00
Patrick Loser eafa545b2a Use novel refactor (#1838)
* init

* feat: add zustand dependency and persistence key contract

* refactor: extract bootstrap data loading into reusable service

* refactor: move chapter mutations into store-ready action helpers

* feat: add zustand novel store with cache and core actions

* refactor: bridge novel persistence contracts for migration safety

* refactor: migrate NovelScreen domain flows to zustand selectors

* refactor: migrate NovelScreenList to selector-based store access

* refactor: move reader chapter flows onto store boundaries

* refactor: decouple useNovelSettings from broad context domain state

* refactor: align migrateNovel with stable persistence contracts

* refactor: cut novel-reader consumers to store-only context boundary

* refactor: retire legacy useNovel and route cache cleanup export

* test: update suites for store-only context boundary cutover

* test: modernize store-era mocks and add contract coverage

* test: finalize Task-15 sweep—remove dead useNovelData and lint clear mocksContract

Final validation confirms mock-contract test suite clean and target file deletion verified with zero stale references in src/ scope.

* remove imports from NovelScreen

* reworked ai output

* improvements

* implemented synchronus novel and chapter fetch

* refactor tests

* fix db tests

* Update remaining tests.

* Harden chapter actions and bootstrap flows

* Only count filtered chapters

* improved chapter insert speed by optimizing triggers

* Improved the batching function

* Added drizzle support to dbManager.batch

* removed better-sqlite3 for testing

* fix tests

* Update updateNovelChapters fucntion

* reverse read filter

* fix snackbar

* fixed page bottomsheet

* resolved paged novels showing wrong chapter number on opening

* use openPage instead of setPageIndex in chapterDrawer

* fix lint & tests

* fix type issues

* fix various smaller issues

* updated novel restore

* Delete tsconfig.tsbuildinfo
2026-05-06 16:55:55 +02:00
Definisi 01596c045a fix: Apply active filters to chapter count display (Closes #1793) (#1797)
* fix: Apply active filters to chapter count display (Closes #1793)

getChapterCount was always returning the total count regardless of
the active filter. When filtering by unread/downloaded/bookmarked,
the count shown in the novel header stayed the same as the total.

Added an optional filter parameter to getChapterCount and pass the
current settingsFilter from useNovel so the displayed count matches
the filtered chapter list.

* fix lint warning and add tests for filtered chapter count

- Use settingsFilter instead of novelSettings.filter in useNovel
  to fix the react-hooks/exhaustive-deps warning
- Add tests for getChapterCount with filter parameter
- Update chapterFilterToSQL mock in test setup to actually apply
  filter conditions so filtered count tests work correctly
2026-04-13 20:39:48 +02:00
Patrick Loser 64921a054e feat: Expo 55 upgrade
* 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
2026-04-05 21:39:52 +02:00
Patrick Loser e4d7ba306b fix: Safety level may not be changed inside a transaction error (#1758) 2026-02-24 12:22:46 +01:00
Patrick Loser b8c177bc55 refactor: Migrate to Drizzle and op-sqlite (#1735)
* 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>
2026-02-20 01:17:01 +05:30
tomsLt0 f0693204e1 fix: Improve Next Chapter Selection Logic (#1744)
improve next chapter selection logic
2026-02-19 01:18:17 +05:30
Rajarshee Chatterjee 8f237909d5 feat: Show First Unread Chapter in ReadButton and FAB When No Last Read
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 20:19:52 +05:30
Rajarshee Chatterjee d15cf98742 fix: Order Chapter Pages Numerically in Queries for Accurate Retrieval (Closes #1742) 2026-02-12 01:01:20 +05:30
Rajarshee Chatterjee 2f45db659b fix: Replace Sync Database Operations With Async to Prevent Database Lock (Closes #1716)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 16:49:57 +05:30
Patrick Loser 4ad0639796 Fix: Chapter loading for jump to chapter modal and chapter drawer
* updated debs

* Jump to chapter now loads not preloaded chapters

* chapter drawer scrolls to current chapter

* Load new chapters when reaching end of chapter drawer

* fix JumpToChapterModal rebase

* fix Chapter drawer current chapter position detection

---------

Co-authored-by: CD-Z <github.verify097@passmail.com>
2026-01-31 13:11:07 +01:00
Rajarshee Chatterjee 0cb9da9027 refactor: Replace withTransactionAsync With withExclusiveTransactionAsync for Improved Concurrency Handling (Closes #1636) 2026-01-15 08:20:37 +05:30
Rajarshee Chatterjee 2cabc9849c fix: Skip Failed Entities During Backup Creation and Add Error Handling 2025-12-06 15:16:22 +05:30
Rajarshee Chatterjee b09cd3d587 fix: Sort Updates Correctly (Closes #1652) 2025-12-06 12:44:11 +05:30
Rajarshee Chatterjee 3af24f0815 fix: Improve Migration Error Handling 2025-11-16 13:18:58 +05:30
Rajarshee Chatterjee f60a5af3f2 fix: Add Error Handling Around PRAGMA Query 2025-11-15 20:29:05 +05:30
Rajarshee Chatterjee dcf667b176 fix: Rerun Migrations and Update Insert Chapter Queries 2025-11-15 14:36:57 +05:30
Rajarshee Chatterjee 3a313b9441 feat: Add Progress Notifications for Local Backup Creation and Restore 2025-11-15 11:07:48 +05:30
Rajarshee Chatterjee 3452478aa1 fix: Create Default Category Only If It Does Not Exist
[skip ci]
2025-11-14 21:32:01 +05:30
Rajarshee Chatterjee ea72de0113 fix: Ensure 'Download All' and 'Unread' Download Entire List, Not Just Batch 2025-11-12 21:17:18 +05:30
Rajarshee Chatterjee f1c825f826 feat: Implement Structured Database Migration System (#1621) 2025-10-23 13:00:10 +05:30
Rajarshee Chatterjee 259dd6acc7 feat: Fetch All Chapters for EPUB Export and Add Range Selection
Closes #1605
Closes #1606
2025-10-22 18:45:08 +05:30
Rajarshee Chatterjee 4b1ff0efc1 fix: Skip Updating Imported Entries During Library Update (Closes #1404)
[skip ci]
2025-10-21 15:26:09 +05:30
Rajarshee Chatterjee 45174af3c2 fix: Include Imported Entries in “Downloaded Only” Mode (Closes #1261) 2025-10-21 15:20:34 +05:30
Rajarshee Chatterjee 37969da3e9 fix: Prevent Crash When App Is Closed During Onboarding (Closes #1517) 2025-10-21 14:02:56 +05:30
yammyy dcceea064a fix: Update Only the Selected Category During Category Update (#1594)
For this:
1) Select all novelIds that are in chosen category
2) Select novels by chosen Ids
2025-10-18 21:56:08 +05:30
Patrick Loser 21611de3aa feat: Added chapter caching & page reader improvements
* update dependencies

* added stopPropagation

* change setInterval to onscrollend

* update progress save logic

* update chapter progress on reader exit

* chapter preloading

* reduced rerender on chapter change

* organize index.css

* added styles

* context restructure

* working page reader upgrade

* reduced unnecessary rerenders

* preserve reader settings during chapter change
2025-05-19 22:33:48 +02:00
Patrick Loser c487bd2ca6 fix: type errors
* fix app.tsx

* fix InfoItem

* fix helpers

* fix webview ref

* fix MoreScreen

* fix NovelScreenButtonGroup

* fix ReaderScreen

* fix readerTextAlignSelector

* fix ReaderValueChange

* fix UpdateNovelCard

* fix myAnimeList

* fixed legacy backup

* fix migrateNovel
2025-05-08 22:39:02 +02:00
Patrick Loser f90a4d1103 fix: logic related to LibraryContext
* update addToLibrary logic

* replace GlobalSearchNovelItem with NovelCover

* fix replace chaptersRead with chaptersUnread

* remove LegendList from browseTabs

* remove Legendlist from LibraryBottomSheet

* remove LegendList from JumpToChapterModal

* remove LegendList from NovelDrawer

* remove LegendList from ChapterDrawer

* fix NovelCover and related type issues

* added check for pages

* fix addToLibrary logic

* fix lint
2025-05-08 21:38:41 +02:00
nyagami ae022052d5 [skip ci] more strict linter 2025-05-04 20:58:09 +07:00
CD-Z ad1ccd815a lint + prettier 2025-05-04 10:48:50 +02:00
CD-Z 537cf48fb4 fix chapter insert 2025-05-04 09:49:55 +02:00
nyagami f2d3de4470 [skip ci] fix: eslint (except insert chapters) (#1487) 2025-05-03 22:53:04 +07:00
Soopyboo32 5f4507cfd5 Better chapter download notification (#1401)
* Better chapter download notification

* fix

* Update starting tasks list when new tasks are added to queue

* Give tasks an id

* Requested changes
2025-05-03 22:28:33 +07:00
Rajarshee Chatterjee ecc7a7a6e7 fix: Database Schema 2025-05-03 18:46:07 +05:30
nyagami 8d5b92bc9e Feat: React Native new architecture (#1420)
* update depedencies (buidable)

* fix: init db once

* upgrade react navigation v7

* better deeplink handler

* upgrade react naitve vector icons

* updated sql querries (may need further adjustments)

* fix: added type for icon name

* update react-native-reanimated, react-native-gesture-handler

* update google signin

* update tabivew & bottom sheet

* make all repository queries synchroniuously

* update categoryqueries

* import db in categoryqueries

* update chapter queries

* update import novel

* updated LibraryUpdateQueries

* fix download chapter

* fixed stats

* update history queries

* improved updates tab logic

* update LibraryQueries

* update NovelQueries

* improved import novel

* fixed notifications for android 14 and up

* fix Cant parse on first opening

* fixed loss of precision error

* Partial Loading of NovelScreen

* NovelScreenButtonGroup animation

* NovelScreen appbar animations

* update migrate novel

* feat: rewrite VolumeButtonListener to turbor module

* minor: clean up

* fixed type errors

* Novelscreen updates

* fix: better material-design-icons for react-native-paper

* migrate react-native to 0.77, good bye metro console streaming

* replace elevation with boxShadow

* rewrite FileManager -> NativeFile in TurborModule

* rewrite ZipArchive -> NativeZipArchive

* rewrite EpubUtil -> NativeEpubUtil

* dev improvement: active arch only for ndk and run launch debug id

* experimental React compiler (works but no significant improvements)

* ReaderBotttomSheet rewrite

* remove db from all query helper functions

* simplified db helper types

* better helper functions

* switch to native-stack

* removed console.log

* Change loading in UpdatesScreen

* pass novelcover on opening novel

* cleanup UpdateNovelCard

* fixed lint errors

* changed novelscreen animation behaviour

* fix UpdatesScreen

* fix lint errors

* fix unwanted downloadbutton behaviour

* fix: wrong key for multi

* fix: react-native-screens override

* remove abi filters for debug

* fix selecting chapters not working correctly

* adjust novelappbar animation

* preserve Layout when opening novel image

* added SafeAreaViews

* set Modal shadow to transparent

* replace rn paper modal with @components modal

* fix go prev chapter goes to first chapter

* fix open drawer with button

* fix SafeAreaView

* fix LibraryScreen

* improve BottomSheet performance

* SafeAreaView for global search

* fix NovelScreen SafeArea

* restructure useNovel

* remove useNovel from NovelScreenList due to possible db lock

* fix NovelCover not showing on first opening

* fix library not updating  changes to novels

* fix menu covering taskbar

* added FadeIn transition to appbar elements

* added SafeSnapPoints to keep bottomsheet inside of the safe area

* upgrade packages

* maybe round download button for jacubb

* fix space after autoscroll

* fix ReaderBottomSheet switch

* fix Jump to Chapter style

* fix Jump to chapter behaviour

* add Loading state to novelcover

* insertChapters performance improvement

* getChapter and getNovel db optimization

* updated db indexes

* New Skeleton for NovelScreen

* smoother FAB button

* add fetching state to useNovel

* fix paged novel chapter navigation

* fix type issues

* fix expanded novelCover on rotation

* add batched loading for chapters

* fix download button

* fix novelScreen loading state

* upgrade react native 0.78

* update to LegendList and fixed type errors

* fix chapter drawer

* added novel context + moved chapter & novel into ReaderStack

* fix lint

* improved chapterlist performance

* improved ChapterListSkeleton performance

* improved updates skeleton

* reworked onboading screen

* fix chapter drawer render error

* add NovelContext [unstable]

* fix filter compatibility

* upgrade eslint + add tanstack query

* eslint auto fix

* fix eslint errors

* upgrade expo 53, react native 0.79.1

* remove console

* remove unused package

* fix: exact vesion for core packages

* update contributing versions

---------

Co-authored-by: CD-Z <p_loser_Austria@gmx.at>
2025-05-01 23:05:30 +07:00
Rajarshee Chatterjee 52ec11a33d refactor: Prevent Multiple Database Connections 2024-11-04 17:30:36 +05:30
nguyd1 9c68260592 fix: Resolve 'Can't Parse Page' SQL Syntax Error (#1266)
fix cant parse page sql syntax error
2024-10-04 17:24:37 +05:30
S.M.A Sayem Prodhan a399927264 fix: Resolve Search Error with Query Containing ' (#1133)
* fix search error when query contains '

* change search to prepared statement

* added missing semicolons
2024-08-17 15:12:12 +05:30
Rajarshee Chatterjee 03e3816ab8 fix: Optimize Marking Chapters as Read or Unread 2024-07-13 20:10:50 +05:30
Rajarshee Chatterjee 73f7ebf7b5 fix: Reset Chapter Progress When Marked as Unread (Closes #678) 2024-07-13 13:16:24 +05:30
nyagami 078796784b Feat: Service Manager (#1124)
* feat: ServiceManager & import multiple epub files

* Fix: merge chapter based on index of toc in file list

* notifcation when jobs get done

* Fix epub: only read table of content in navmap

* add update library to service manager

* add drive backup/restore to service manager

* add self host backup/restore to service manager

* add migrate novel to service manager

* add download chapter to service manager

* clean up
2024-07-05 23:32:10 +07:00
nyagami 0bda5fd055 No default repo 2024-06-23 17:37:29 +07:00
Patrick Loser ea336902f2 Fix: Scroll to current Chapter (#1101)
* cleanup + fixed scroll to current Chapter

* removed unused memoization

* removed unused import

* ChapterDrawer.tsx => index.tsx

* added correct types

* applied suggestion

* changed chapter.position to scrollIndex + 2

* refactored index.ts
2024-06-14 23:17:22 +07:00