Commit graph

181 commits

Author SHA1 Message Date
faab
892c882556 Added translation using Weblate (French) 2026-04-20 10:36:03 +05:30
Br0t
361e2c9684 Added translation using Weblate (Spanish) 2026-04-20 10:36:03 +05:30
Enrico Ferrer
ae58b3939d Translated using Weblate (Portuguese (Brazil))
Currently translated at 22.2% (2 of 9 strings)

Translation: Episteme/plurals
Translate-URL: https://hosted.weblate.org/projects/episteme/plurals/pt_BR/
2026-04-20 10:36:03 +05:30
Enrico Ferrer
ea681ef621 Added translation using Weblate (Portuguese (Brazil)) 2026-04-20 10:36:03 +05:30
Silent Coder
d51407c363 Added translation using Weblate (Hindi) 2026-04-20 10:36:03 +05:30
Eyad alkordy
1ce93c083f Translated using Weblate (Arabic)
Currently translated at 88.8% (8 of 9 strings)

Translation: Episteme/plurals
Translate-URL: https://hosted.weblate.org/projects/episteme/plurals/ar/
2026-04-20 10:36:03 +05:30
Eyad alkordy
e79da9c329 Translated using Weblate (Arabic)
Currently translated at 100.0% (9 of 9 strings)

Translation: Episteme/plurals
Translate-URL: https://hosted.weblate.org/projects/episteme/plurals/ar/
2026-04-20 10:36:03 +05:30
Otto Zumkeller
8875cdd7c0 Translated using Weblate (German)
Currently translated at 88.8% (8 of 9 strings)

Translation: Episteme/plurals
Translate-URL: https://hosted.weblate.org/projects/episteme/plurals/de/
2026-04-20 10:36:03 +05:30
Otto Zumkeller
5e4d1a655a Added translation using Weblate (German) 2026-04-20 10:36:03 +05:30
Eyad alkordy
abdce865fb Translated using Weblate (Arabic)
Currently translated at 11.1% (1 of 9 strings)

Translation: Episteme/plurals
Translate-URL: https://hosted.weblate.org/projects/episteme/plurals/ar/
2026-04-20 10:36:03 +05:30
Eyad alkordy
309c85596b Added translation using Weblate (Arabic) 2026-04-20 10:36:03 +05:30
Cabbar Hayıroğlu
23ae7928bd Translated using Weblate (Turkish)
Currently translated at 100.0% (9 of 9 strings)

Translation: Episteme/plurals
Translate-URL: https://hosted.weblate.org/projects/episteme/plurals/tr/
2026-04-20 10:36:03 +05:30
Cabbar Hayıroğlu
c890fbc588 Added translation using Weblate (Turkish) 2026-04-20 10:36:03 +05:30
Hosted Weblate
8b9c78afdf
Merge remote-tracking branch 'origin/main' 2026-04-20 06:38:14 +02:00
Weblate (bot)
413825481b
Translations update from Hosted Weblate (#208)
* Added translation using Weblate (Turkish)

* Translated using Weblate (Turkish)

Currently translated at 36.5% (252 of 689 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/tr/

* Translated using Weblate (Turkish)

Currently translated at 45.1% (311 of 689 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/tr/

* Added translation using Weblate (Arabic)

* Translated using Weblate (Arabic)

Currently translated at 10.1% (70 of 689 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/ar/

* Added translation using Weblate (German)

* Translated using Weblate (German)

Currently translated at 52.1% (359 of 689 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/de/

* Translated using Weblate (Arabic)

Currently translated at 73.4% (506 of 689 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/ar/

* Translated using Weblate (Arabic)

Currently translated at 100.0% (689 of 689 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/ar/

* Added translation using Weblate (Hindi)

* Added translation using Weblate (Portuguese (Brazil))

* Translated using Weblate (German)

Currently translated at 99.5% (687 of 690 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/de/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 10.4% (72 of 690 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/pt_BR/

* Translated using Weblate (Turkish)

Currently translated at 78.2% (540 of 690 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/tr/

* Added translation using Weblate (Spanish)

* Translated using Weblate (Spanish)

Currently translated at 8.8% (61 of 690 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/es/

* Translated using Weblate (Arabic)

Currently translated at 100.0% (690 of 690 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/ar/

* Added translation using Weblate (French)

---------

Co-authored-by: Cabbar Hayıroğlu <halil48efe@gmail.com>
Co-authored-by: Kara Pisicik <noircat43@gmail.com>
Co-authored-by: Eyad alkordy <waeleyad248@gmail.com>
Co-authored-by: Otto Zumkeller <ottozumkeller@gmail.com>
Co-authored-by: Silent Coder <silentcoder@tutamail.com>
Co-authored-by: Enrico Ferrer <mathferrer17ea@gmail.com>
Co-authored-by: Br0t <travelty.thigh614@passmail.net>
Co-authored-by: faab <fa4b@tuta.io>
2026-04-20 09:35:25 +05:30
faab
62e951b025
Added translation using Weblate (French) 2026-04-20 06:04:20 +02:00
Eyad alkordy
fb7023bcef
Translated using Weblate (Arabic)
Currently translated at 100.0% (690 of 690 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/ar/
2026-04-20 06:04:19 +02:00
faab
539efd6af1
Translated using Weblate (Spanish)
Currently translated at 8.8% (61 of 690 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/es/
2026-04-20 06:04:18 +02:00
Br0t
b1334a520f
Added translation using Weblate (Spanish) 2026-04-20 06:04:17 +02:00
Cabbar Hayıroğlu
9364e63dcb
Translated using Weblate (Turkish)
Currently translated at 78.2% (540 of 690 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/tr/
2026-04-20 06:04:16 +02:00
Enrico Ferrer
18a7da882c
Translated using Weblate (Portuguese (Brazil))
Currently translated at 10.4% (72 of 690 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/pt_BR/
2026-04-20 06:04:15 +02:00
Otto Zumkeller
630e158492
Translated using Weblate (German)
Currently translated at 99.5% (687 of 690 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/de/
2026-04-20 06:04:14 +02:00
Enrico Ferrer
949481661b
Added translation using Weblate (Portuguese (Brazil)) 2026-04-20 06:04:14 +02:00
Silent Coder
8ca07a708c
Added translation using Weblate (Hindi) 2026-04-20 06:04:13 +02:00
Eyad alkordy
697530e054
Translated using Weblate (Arabic)
Currently translated at 100.0% (689 of 689 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/ar/
2026-04-20 06:04:12 +02:00
Eyad alkordy
77823b94f2
Translated using Weblate (Arabic)
Currently translated at 73.4% (506 of 689 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/ar/
2026-04-20 06:04:11 +02:00
Otto Zumkeller
78db81396c
Translated using Weblate (German)
Currently translated at 52.1% (359 of 689 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/de/
2026-04-20 06:04:10 +02:00
Otto Zumkeller
af5ed64142
Added translation using Weblate (German) 2026-04-20 06:04:10 +02:00
Eyad alkordy
f20d4633ab
Translated using Weblate (Arabic)
Currently translated at 10.1% (70 of 689 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/ar/
2026-04-20 06:04:09 +02:00
Eyad alkordy
2c1f70ede9
Added translation using Weblate (Arabic) 2026-04-20 06:04:08 +02:00
Kara Pisicik
f73e7c6dad
Translated using Weblate (Turkish)
Currently translated at 45.1% (311 of 689 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/tr/
2026-04-20 06:04:07 +02:00
Cabbar Hayıroğlu
fc364bcfe8
Translated using Weblate (Turkish)
Currently translated at 36.5% (252 of 689 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/tr/
2026-04-20 06:04:07 +02:00
Cabbar Hayıroğlu
65dab84f35
Added translation using Weblate (Turkish) 2026-04-20 06:04:06 +02:00
Aryan
8ac534e8ac
Add 'weblate' to CLA allowlist (#209) 2026-04-20 09:33:59 +05:30
Aryan
46620fa71a
V1.0.43 oss (#202)
* Added support for AI and Cloud credits in the Pro flavor.

* Implemented credit-based authentication and authorization for AI features and Cloud TTS.

* Updated AI feature access and purchase handling to a credit-based system.

* Refactored and enhanced the Text-to-Speech (TTS) system with persistent caching and a redesigned UI.

* Improved TTS cache management by organizing audio files by book title and adding a detailed cache storage UI.

* Refactored the TTS service to use a WebSocket-based Gemini Live connection for cloud audio generation.

* Removed the TTS cache settings tab and simplified voice sample playback by removing local caching logic.

* Implemented a low-latency streaming mechanism for Cloud TTS using a custom `ConcurrentInputStream` and `ExoPlayer` data source.

* Improved cloud TTS stability and prefetching logic in `TtsService` and `TtsPlaybackManager`.

* Implemented AI summarization caching and cost tracking in the EPUB reader.

* Enhanced chapter summary caching and UI feedback.

* limit summaries for pro users to 10 per day

* Implemented local caching for Cloud TTS audio chunks.

* Removed the Free tier tab from `ProScreen` and simplified the subscription interface. Updated tab logic to focus on Pro and Credits, including a new cost breakdown section for AI and Cloud TTS features.

* Refactored HTML parsing to include all child nodes during content chunking and semantic block parsing.

* Improved image rendering consistency in epub pagination reader

* Improved HTML parsing in `HtmlParser.kt` to better handle complex nested structures

* Improved CSS styling support in the epub paginated reader for word spacing and text decorations.

* Implemented scroll throttling in `epub_reader.js` to improve performance during scroll events

* Improved CFI resolution and scrolling reliability in EPUB reader

* Optimized PaginatedReader performance by caching text decorations.

* Implemented batching for recent file database operations to handle large datasets and introduced `RecentFileSummary` to optimize data retrieval by excluding heavy JSON columns.

* Improved navigation stability by wrapping `navController.navigate` and `popBackStack` calls in a try-catch block to handle `IllegalStateException` during concurrent transitions. Additionally, refined the backstack check for the main route to prevent redundant pops.

* feat(tts): redesign TTS controls with overlay UI and cache management

* Expanded and improved the TTS (Text-to-Speech) capabilities, particularly for Cloud voices.

* Improved TTS playback control and cache management.

* Integrated the TTS cache manager into the settings sheet and improved the TTS configuration UI.

* Updated `DeviceVoicesTab` to respect the current TTS mode, disabling voice selection when not in `BASE` mode.

* Improved error handling and state management for Cloud TTS in `TtsService` and `TtsPlaybackManager`.

* Improved TTS voice selection UI and sample playback logic.

* Updated `TtsUtils` and `TtsService` to remove `chunkIndex` from TTS cache filenames. Refined the cache file naming convention to rely on text and speaker hashes, and updated the cache file filter logic to correctly identify speakers in both legacy and new filename formats.

* Optimized tile rendering and state propagation in PDF viewer

* Added "Expand All", "Collapse All", and "Locate" functionality to the Table of Contents in both EPUB and PDF readers.

* Added sign-in requirement for credit purchases and improved purchase migration logic.

* Updated `EpubReaderTts` to support authenticated TTS requests by passing an auth token provider. The `ttsController.start` method now includes an `authToken` retrieved via `getAuthToken` and explicitly sets the `playbackSource` to "READER".

* feat(ai): replace summarization popup with a comprehensive AI Hub Bottom Sheet

* Improved locator logic and block traversal in `BookPaginator`.

* Updated AI features and Cloud TTS logic.

* Added manual clear and auto-reset functionality for AI summaries and recaps

* Optimized file importing, EPUB parsing, and TTS playback concurrency.

* Restricted TTS mode to BASE in OSS flavor and fixed TTS mode persistence in PDF viewer

* Bump version to 1.0.43(44)
2026-04-18 16:46:58 +05:30
Aryan
e8f6be2800
Update localization section in README (#183) 2026-04-13 21:40:23 +05:30
Aryan
c34459e2bc
Update README.md (#182) 2026-04-13 21:15:46 +05:30
Aryan
2c03f125a9
Converted hardcoded pluralization strings to Android plural resources. (#176) 2026-04-12 17:51:23 +05:30
Aryan
3f840a47c8
Update README.md (#175) 2026-04-12 17:21:17 +05:30
Aryan
b027331bd1
String extraction (#174)
* Refactored the EPUB reader to use localized string resources instead of hardcoded strings across multiple components.

* Refactored the PDF viewer and annotation components to use centralized string resources instead of hardcoded text.

* Updated `strings.xml` with extensive translation hints and localization metadata.
2026-04-12 16:34:47 +05:30
Aryan
17a0097d4a
General improvements (#164)
* Optimized PDF tile rendering performance and quality.

* Added support for adjusting TTS voice speed and pitch.

* Updated the TTS settings UI and playback logic to support real-time parameter adjustments.

* Added horizontal scrolling to the PDF viewer bottom toolbar and updated tool arrangement to use fixed spacing.

* Refined cross-page selection and text extraction in `PaginatedReader`

* Updated EPUB reader styling logic to refine typography and layout controls.

* Bump version to 1.0.42(43)
2026-04-10 20:23:39 +05:30
Aryan
12d50bb68d
Library improvements (#163)
* Improved local folder sync and file management by migrating sidecar metadata to a dedicated subfolder and enhancing book ID stability.

* Optimized folder sync and increased synced folder limits.

* Added support for managing active tabs in the `HomeScreen`.

* Added support for strict file type filtering when picking documents.
2026-04-10 17:49:37 +05:30
Aryan
49e08cc9f1
Epub improvements (#162)
* Added a "Remove Edge Padding" option in "Visual Options"

* Added support for paragraph gap settings in the EPUB vertical reader.

* Added support for adjustable paragraph gaps in the paginated reader.

* fix(epub-pagination): ensure custom fonts override embedded epub fonts

* feat(epub): allow overlapping highlights and resolve gesture selection conflicts
2026-04-10 17:43:01 +05:30
Aryan
291504fd90
More formats support (#161)
* Added support for ODT and FODT file formats.

* Improved `OdtParser` to support enhanced document formatting and external assets

* Added support for viewing CSV, TSV, JSON, XML, logs, and source code files by dynamically converting them to HTML.
2026-04-10 17:35:31 +05:30
Aryan
6a60aec0ef
Epub improvements (#160)
* Improved navigation and search result highlighting in the EPUB reader

* refactor: implement JIT chunk restoration for robust navigation

- Fixes search and bookmark navigation failing in same-chapter transitions.
- Introduced JIT (Just-in-Time) HTML restoration in `epub_reader.js` to
  re-populate virtualized chunks before CFI resolution or search scrolling.
- Synchronized search highlighting and user highlights within
  newly-restored chunk segments.
- Improved search navigation accuracy by mapping occurrences to
  relative chunk indices.

* Implemented a custom text selection engine for the paginated EPUB reader to support cross-page selection and improved handle interaction.

* Implemented management of external file behavior and improved library filtering.

* Added support for toolbar customization in the EPUB reader.

* Added support for toolbar customization in the PDF reader.

* fix: rendering during auto-scroll and navigation on long pages

* Added a "Scroll to Top" feature to the auto-scroll controls in both EPUB and PDF readers.
2026-04-10 17:30:48 +05:30
Aryan
db7e05ce63
Update Obtainium link in README.md (#156) 2026-04-08 15:04:43 +05:30
Aryan
c62a0bcb5e
Update README (#155) 2026-04-08 14:01:53 +05:30
Aryan
26692d2c05
General improvements (#151)
* Updated folder synchronization logic and redesigned the file type filter dialog.

* Fixed CFI generation and navigation stability in the EPUB reader.

* Improved CFI scrolling and position calculation in the EPUB reader by implementing text node traversal using `TreeWalker`. This ensures accurate positioning and scrolling when a CFI offset spans multiple fragmented text nodes.

* fix fb2 multiline titles, retain footnotes, and prevent stream leaks

- Fix FB2 titles with multiple paragraphs by inserting breaks/spaces
- Prevent resource leaks by properly closing InputStreams in all importers
- Retain "notes" and "comments" sections in FB2 instead of skipping them
- Add support for FB2 poem, stanza, cite, and link tags

* Implement persistence for zoom and pan states when pan lock is enabled in the PDF reader.

* Added `FileTypeBadge` to home and library screens

* Bump version to 1.0.41(42)
2026-04-05 10:36:44 +05:30
Aryan
65e0570d0e
Support notes with highlights (#150)
* Added support for highlight notes in EPUB reader

* fix(epub annots): ensure persistent highlights and preserve notes on color change

- refactor: unified processAndAddHighlight across scroll and paginated modes
- fix: re-apply highlights to virtualized DOM elements on chunk load
- fix: replaced '|' with ';;' in JS bridge to prevent CFI parsing errors

* feat(epub): redesign annotation UX with theme-aware Bottom Sheet

* Updated highlight handling to use full CFI strings instead of splitting into parts during deletion and style updates. Adjusted `processAndAddHighlight` to return the final CFI and updated the delete button UI to use a contained button style.

* Added support for notes in PDF highlights.

* Implemented support for custom highlight colors in the PDF reader.

* Improved PDF annotation notes and theme handling in the bottom sheet.
2026-04-05 09:52:05 +05:30
Aryan
c8f361376f
General improvements (#149)
* Improved eraser hit detection and added horizontal scrolling to AnnotationDock

* fix: lock scroll tracking during PDF rotation to prevent page jumping in vertical mode

* Implemented a multi-tab reading system for the PDF viewer.

* Redesigned the About dialog on homescreen.

* improved bulk file import support

* Implemented document caching and improved tab restoration in the PDF viewer.

* Implemented native link detection and information extraction in `pdfium_bridge.cpp` and integrated it into `PdfPageComposable.kt`. This includes adding `getLinkInfoAtPoint` to `NativePdfiumBridge` to handle URI, GoTo, and RemoteGoTo/Launch actions, and updating the tap gesture logic to prioritize native link handling.

* Fixed index bounds and layout padding calculation in PdfViewerScreen
2026-04-05 09:41:26 +05:30