Commit Graph

142 Commits

Author SHA1 Message Date
Shisii 71da09ed44 feat(reader): Add Current Chapter Search (#1877)
* feat(reader): add search button and search input for word search

* fix(reader): make keyboard close on hideHeader

* chore(reader): format reader files

* chore(strings): regenerate string types

* feat(reader): add chapter word search

* fix(reader): improve chapter search reliability

* fix(reader): hide ReaderFooter when search is open

* fix(reader): add support for search in bionic reading mode

* fix(reader): localize chapter search placeholder

* feat(reader): block short word search queries

* feat(reader): make android back button exit search

* feat(reader): add exception for special character search

* refactor(reader): split chapter search script from core
2026-07-19 19:22:40 +05:30
Palloxin 788f6cede7 fix: Prevent Table Overflow and Clean Up CSS (#1876) (#1876) 2026-07-13 16:11:50 +05:30
Vikas Movva 54fedc2f53 fix(tts): Remove Leading and Trailing Quotes from Normalized Text (#1869) 2026-07-01 12:35:13 +05:30
Palloxin e8c5550256 perf: Optimize Regex for Removing Extra Paragraph Spacing (#1872) 2026-07-01 12:32:28 +05:30
Jeon JaeHyeong 34be7a1234 fix(native-file): prevent fatal crash when unlinking missing files (#1832)
fix(native-file): prevent crash when unlinking missing files

NativeFileSpec.unlink is codegened as a void-returning TurboModule
method, which dispatches asynchronously on the mqt_v_native thread.
Throwing "File does not exist" there bypasses every JS try/catch and
surfaces as a fatal AndroidRuntime exception, killing the process.

Make unlink idempotent (POSIX rm -f semantics): no-op when the path
does not exist. The Downloads "delete all" and individual delete
flows previously crashed whenever a chapter row had isDownloaded=true
while its on-disk folder had already been removed (e.g. after backup
restore or external cleanup). The same fix also protects useNovel,
pluginManager, fetch, epub/import, backup/local, backup/utils, and
AdvancedTab call sites that share the same native handler.
2026-05-24 10:41:17 +05:30
Jeon JaeHyeong 60f42ed624 chore(build): patch @rock-js/plugin-metro for Windows compatibility (#1830)
- patches/@rock-js__plugin-metro@0.12.12.patch: wrap absolute paths
  in pathToFileURL() so dynamic imports work on Windows
- pnpm-workspace.yaml: register the patch and pin nodeLinker: hoisted
- pnpm-lock.yaml: lock the patched version with hash
- android/settings.gradle: invoke npx.cmd on Windows for rock autolink
2026-05-24 10:40:24 +05:30
Patrick Loser 3de93c5c09 feat: migrate from rn community cli to rock (#1812)
* migrate to rock

* Update build.yml

* Update build.yml again and changed build.gradle

* fixed actions build crash

* add flashlist to avoid bottomsheet crash

* fix Novelscreen filter highlight

* upload artifact

* update rock config

* update build.yml apk path

* update rock.config again

* Test env file

* Update build.yml

* remove react-native-config

* Update to use split apk and enable custom rock provider paths.

* added upload artifact

* remove split apk

* remove test env
2026-04-13 20:37:47 +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
Rajarshee Chatterjee cc0428752b feat: Replace TTS Notifications with Android MediaSession Controls (Closes #1711)
Replace expo-notifications based TTS controls with a native
NativeTTSMediaControl TurboModule using Android's MediaSessionCompat
and MediaStyle notification. This provides proper media integration
with lock screen controls, cover art display, and seekbar.

- Add NativeTTSMediaControl Kotlin TurboModule with MediaSession
- Support Prev, Rewind, Play/Pause, Next notification buttons
- Show novel cover as notification album art
- Add seekbar with seek-to-element support
- Replace MMKV polling with NativeEventEmitter for instant response
- Add rewind and seekTo methods to TTS in core.js
- Clean up expo-notifications TTS setup from App.tsx

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 09:15:54 +05:30
Rajarshee Chatterjee 3f8071e48e chore: Release v2.0.3 2026-02-18 22:31:06 +05:30
Rajarshee Chatterjee 45c4ea8ca0 fix: Handle IOException in NativeFile to Prevent EPUB Import Crash Loop (Closes #1315)
Synchronous TurboModule methods throwing IOException (FileNotFoundException)
crash the app process before JS catch blocks execute. Wrap file I/O in
try/catch to convert IOException to Exception for proper bridge serialization,
breaking the crash loop caused by stale tasks in the MMKV queue.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 16:19:07 +05:30
Rajarshee Chatterjee 4088d5966b fix: Close OkHttp Response and Streams in NativeFile.downloadFile (Closes #1740)
Unclosed Response objects leaked HTTP connections and memory buffers,
causing OOM crashes when batch-downloading chapters with images.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 15:11:18 +05:30
Mousica 467a97dcf7 feat: Add Volume Button Offset Setting and Fix Related UI Issues (#1685) 2025-12-24 19:13:52 +05:30
Rajarshee Chatterjee d43c95f98c chore: Release v2.0.2
[skip ci]
2025-12-07 00:44:30 +05:30
Rajarshee Chatterjee 52d9d9ea1d feat: Continue Reading While App Runs in Background 2025-12-06 19:03:44 +05:30
Rajarshee Chatterjee 0ed6e9a463 fix: Start TTS From First Paragraph on Initial Press 2025-12-06 12:55:02 +05:30
Rajarshee Chatterjee b70ebcf5f9 chore: Bump Version Patch to 1 in build.gradle (Closes #1662) 2025-12-06 12:20:19 +05:30
Gabriel Vasconcelos 9d58161729 feat(tts): Refactor Reading Logic to Fix Overflow and Add New Settings (#1664)
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]
2025-12-06 12:18:35 +05:30
Palloxin 41ea7eb7b7 chore: Add onScrollEnd Polyfill (#1609) 2025-11-14 19:01:27 +05:30
Rajarshee Chatterjee a712100cfc feat: TTS Improvements
Closes #1500
Closes #1210
Closes #1244
Closes #1110
2025-11-14 13:07:37 +05:30
Rajarshee Chatterjee c9eb42ff4d chore: Upgrade React Native to 0.81
This is a manual cherry-pick from @CD-Z’s PR that updates React Native to 0.81. Thanks for originally working on it
2025-10-23 16:39:11 +05:30
Rajarshee Chatterjee 8f0c39ab41 chore: Update Kotlin Version to 2.1.20 2025-10-23 15:35:14 +05:30
ilona 0dd9f2bd94 feat: Reimplement Local Backup Based on Self-Hosted Backup (#1603)
Closes #1276
2025-10-18 21:33:59 +05:30
ilona 80228ada1e chore: Improve General Plugin DX (#1604)
* enable webview debugging in dev builds only

* Fixed error downloading empty files (#1601)

* Allow data attributes in chapter HTML #1602
2025-10-18 09:51:10 +05:30
Palloxin 00c180927e Fix broken Bionic Reading (#1588)
fix broken Bionic Reading
2025-09-21 21:11:21 +07:00
Palloxin 7f61219bb0 Improve ‘remove extra spacing’ feature (#1579)
* Improve ‘remove extra paragraphs’ feature

* fix lint

* fix little mistake

* lil edit of code comment

* a little bit faster regex

* forgot to add final \s*
2025-09-21 21:10:11 +07:00
Palloxin 00d3a441e3 Improve regex of import and bionic reading (#1485)
* Improve regex of import

* Update import.ts

* Update import.ts

* lint

* lint

* bionic reading

* lint

* resolve conflict

* fix lint

* Update import.ts

* [^]

* lil fix
2025-09-07 22:07:43 +07:00
Palloxin b107d3ca54 fix: Default Line Height ofsup Tag in Reader Mode (#1546) 2025-08-14 21:02:56 +05:30
nyagami 47428ec484 feat: import epub cpp (android) (#1514) 2025-05-25 08:15:58 +07:00
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
nyagami 2c8880c9af [skip ci] splash screen ios (unusable) 2025-05-18 01:47:10 +07:00
Patrick Loser ed215a1d54 fix focusmode and readerscreen animations (#1494)
* update addToLibrary logic

* replace GlobalSearchNovelItem with NovelCover

* fix NovelCover and related type issues

* fix addToLibrary logic

* installed react-native-edge-to-edge

* fix Footer behaviour in Reader

* fix type issue

* fix Header behaviour in Reader

* fix ToolWrapper animation

* fix
2025-05-09 10:29:31 +02:00
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
Batorian 0f5eee1bdb Improvement: Updated Sanitizer (#1129)
* update: GitHub workflow-dispatch

* fix: separate app for testing

* fix: separate app for testing

* fix: separate app for testing

* fix: new css for chapter content

* fix: separate app for testing

* branch: new test branch

* Enhancement: added more CSS

* build

* Enhancement: git build

* Fix: git build

* merge

* Enhancement: added more CSS

* dev: update build.yml

* dev: update sanitizer

* sanitizer: updated sanitizer

* dev: update index css

* dev: update sanitizer

* dev: update sanitizer

* sanitizer: update sanitizer

* sanitizer: added more allowed tags

* filter: fix filters

* progress-tracking: initial commit

* progress-tracking: implemented tracking

* progress-tracking: update tracker

* progress-tracking: complete rework

* progress-tracking: improvements

* sanitizer: update sanitizer

* sanitizer: block text-align

* sanitizer: update img

* sanitizer: reworked

* sanitizer: reworked

* sanitizer: fixed lazyloaded images

* sanitizer: revert sanitizer

* sanitizer: remove alt and title from images

* sanitizer: revert other changes

* sanitizer: fix

* sanitizer: update
2025-03-01 11:23:21 +07:00
Palloxin 22915914fb feat: Improve ‘Remove Extra Paragraph Spacing’ Feature (#1203)
* Improve "Remove extra paragraph spacing" feature

* Adjust in case of p with classes

* Lint

* Lint - part 2

* Lint - part 3

* forgot \s*

* \u00a exception

found here https://readnovelfull.com/the-wife-of-a-powerful-family-huo-shao-how-dare-you-flirt-with-me/chapter-1.html

* Better

* Fix

* fix lint

* forgot ``?:``

* Remove zero width

Removed until a concrete source example has them.

* fix lint

* lint

* better v2

* better 2.1

* Lint

* \s

* Exception: double br are used to simulate paragraphs

NovelUpdates - The Extra of The Bad Ending Game, chapter 159

* double br exception correction

* -

* better exception

* Lint

* flaw correction

doest match ``ahahah<br><br><br><br><br>ahahahaha``

* fix little flaw

* Shortening regex

* faster regex

* comment + faster regex

* lint

* lint

* Improve double br exception

* Correct flaw

* forgot

* \b for p

* Revert correct flaw

* Minimal faster regex

* remove useless piece

* forgot

* Faster regex

* very minor change

* Max level fast

* forgot a thing

* missing \s

* plus ultra

* suppefast

* ops

* u200b
2024-12-29 20:20:14 +05:30
nyagami dabe4710bb Fix: reader page padding & back press (#1339)
* fix: remove bottom padding in page reader

* fix: disable drag transition when holding

* reader bottom sheet backpress handler

* close drawer on backpress

* fix: undefined index

* chores: added onboading strings
2024-11-26 20:47:58 +07:00
Palloxin fd6d912391 Disable user-select on next-button and info-text (#1225)
Disable user-select on next-button and info-text
2024-08-21 23:01:54 +07:00
Palloxin b4b00a5c66 fix: Improve Progress Bar Proportions (#1197)
Progress bar better proportions
2024-08-17 15:10:04 +05:30
nyagami 86c82c1a61 Fix reader bugs (#1212)
* fix: tts algorithm

* update: turn off tts by default

* update default padding

* change tts transition to 500ms

* update reader body padding

* cleanup

* fix: throw Exception
2024-08-15 23:07:01 +07:00
nyagami f6b2516643 Feat: rewrite Reader in vanjs (#1194)
* setup van.js

* scrollbar

* Reader Footer

* move state to reader object

* scroll to previous progress

* image modal

* TTS bubble

* swipe gestures

* binoic reading & remove extra spacing

* tap to scroll

* tap & scroll to move page

* page reader move chapter

* display page in footer

* hide progress bar in page reader mode

* remember postion when switch reader mode

* refactor: move initial scroll out of scrollbar

* scroll bar in page reader mode

* chapter ending content

* fix: tts controller

* fix: tts highlight & stopping

* optional tts

* custom js

* update preview reader

* cleanup

* fix: css
2024-08-11 10:37:28 +07:00
Palloxin 7cf8692e77 fix: Reduce Font Size of Reader Progress Bar (#1153)
From 16px to 14px.
It's better looking.
2024-07-19 11:12:46 +05:30
nyagami 19ce7da32e Feat: voice rate/pitch settings 2024-07-15 21:47:33 +07:00
Patrick Loser 31d0aa1787 feat: Add Horizontal Reading Mode (#1021)
* Horizontal Reading Mode (#733)

Closes #29
Closes #149

* fixed first few compatibility issues

* added WebView debugging help

* fixed pages logic + open next chapter at end

* hopefully fixed infinity glitch

* removed logs

* fixed small issues

* working page numbering

* double L shape navigation

* changed let to const

* fixed scrollTo function

* cleanup and fixed css issues

* fixed display bug

* fixed settings bug

* added change padding setting

* added strings

* save + scroll on opening chapter logic

* resolved totalpages detection issue

* simplified getInt function

* css cleanup

* removed useless

* fixed padding scaling bug

* deleted debug items

* additional top padding

* smaller chapter height

* fixed contextMenu

* replaced name: readerPages » pageReader

* fixed ReaderSettings Preview Reader behaviour

* cleanup

* ReaderValueChange improvements

* moved page state to js

* fixed type issues

* functionality test

* fix: NaN page on scrollbar

---------

Co-authored-by: nyagami <hoangquan05112002@gmail.com>
2024-07-14 18:10:38 +05:30
nyagami c9d2ce382f [skip ci] Dev improvement: Different configs for debug app 2024-07-12 09:29:53 +07:00
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 9b4bdfea89 Merge epub chapters (#1117)
* Fix: ignore non existed files

* merge chapters & scan cover

* remove unused tocMap

* clean code
2024-06-27 16:04:50 +07:00
nyagami 58a633e5b9 [skip ci] ignore prettier for android folder 2024-06-13 00:39:19 +07:00
nyagami 772a9ef3a2 Feat: Plugin lazy init(#1104)
* move plugins to single folder

* lazy initial

* clean up

* fix: restore novels
2024-06-12 16:26:55 +07:00
nyagami 94d11a12ff Fix: detect gzip images 2024-06-09 10:42:08 +07:00
nyagami 334c981013 Fix: add imageRequestInit for Reader instead of fetching base64 2024-06-08 21:42:07 +07:00