Material You 3 eBook/audiobook reader — Episteme fork + bookshelf-api/ABS
Find a file
Aryan 0b7bb53a28
Auto scroll update (#28)
* Updated auto-scroll controls UI and refined pause behavior.

- Added semi-transparent look to auto-scroll
- Reduced auto-scroll temporary pause duration from 1000ms to 300ms.
- Updated `AutoScrollControls` styling with background transparency and adjusted elevations/borders.
- Refined `CircularProgressIndicator` visibility to only show when active and paused.
- Enhanced the `Slider` appearance in `AutoScrollControls` with a custom track and thumb.
- Improved play/pause logic in `PdfViewerScreen` to properly reset temporary pause states and jobs.
- Cleaned up redundant comments and formatting in `EpubReaderControls.kt`.

* feat: add file-specific auto-scroll speed profiles for EPUB and PDF

- Updated AutoScrollControls UI with a dropdown to toggle between Global and Local speed modes.
- Implemented persistent local auto-scroll settings (Current, Min, and Max speed) keyed by book ID.
- Ensured "Local mode" preference is sticky per-file, while maintaining Global defaults for new files.

* Enabled auto-scroll toggling via single tap in EPUB and PDF readers
2026-03-04 16:40:02 +05:30
.github Update GitHub sponsor button with a username (#8) 2026-02-26 18:44:11 +05:30
app Auto scroll update (#28) 2026-03-04 16:40:02 +05:30
docs docs: Revamp README and add APK naming convention (#2) 2026-02-25 19:54:43 +05:30
fastlane/metadata/android/en-US use HTML for fastlane full description (#15) 2026-02-27 21:59:10 +05:30
gradle Initial commit 2026-02-24 17:37:40 +05:30
spotless Update readme (#3) 2026-02-25 21:30:28 +05:30
.gitattributes Initial commit 2026-02-24 17:37:40 +05:30
.gitignore docs: add CLA and CONTRIBUTING guidelines (#26) 2026-03-04 10:19:17 +05:30
build.gradle.kts docs: Revamp README and add APK naming convention (#2) 2026-02-25 19:54:43 +05:30
CLA.md docs: add CLA and CONTRIBUTING guidelines (#26) 2026-03-04 10:19:17 +05:30
CONTRIBUTING.md Added stylus-only mode for PDF drawing and annotations. (#27) 2026-03-04 13:18:26 +05:30
gradle.properties Initial commit 2026-02-24 17:37:40 +05:30
gradlew Initial commit 2026-02-24 17:37:40 +05:30
gradlew.bat Initial commit 2026-02-24 17:37:40 +05:30
LICENSE docs: add README, LICENSE, and configure automated license headers 2026-02-25 16:54:51 +05:30
README.md Fix icon and name alignment in readme (#4) 2026-02-25 21:34:06 +05:30
settings.gradle.kts build: remove foojay-resolver-convention plugin for f-droid compliance (#12) 2026-02-27 15:08:39 +05:30

Episteme Reader Icon  Episteme Reader

A native Android document reader application built with Kotlin and Jetpack Compose.

Get it on Google Play

Episteme Reader Preview

Overview

Episteme Reader is an offline-first application designed for reading various document formats. It leverages native Android technologies and C++ libraries to provide a performant reading experience with customization capabilities.

Note: This is the Open Source (OSS) edition of Episteme Reader. The version available on the Google Play Store is built from this core but includes additional proprietary features.

Features

Supported Formats

  • Documents: PDF
  • E-books: EPUB, MOBI, AZW3
  • Text: MD, TXT, HTML

PDF Features

  • Viewing Modes: Vertical Scroll and Paginated view.
  • Ink Annotations: Draw directly on pages using Pen, Highlighter, and Eraser tools.
  • Text Annotations: Add text notes anywhere on the page using system or custom fonts.

E-Book Features

  • Parsing: Native parsing for MOBI/AZW3 via libmobi and EPUB via Jsoup.
  • Customization: Adjust font size, line spacing, and margins.
  • Custom Fonts: Support for importing user-provided font files (.ttf, .otf).

General

  • Text-to-Speech (TTS): Read documents aloud using the system TTS engine.
  • File Management: Built-in library organization.

Architecture

  • UI: 100% Jetpack Compose (Material3).
  • Architecture: MVVM with Unidirectional Data Flow.
  • Database: Room (SQLite) for metadata and annotations.
  • PDF Engine: pdfium-android (Native PDFium bindings).
  • EPUB Engine: Utilizes standard WebView for vertical scrolling mode, and a custom rendering engine for paginated mode.
  • Mobi Engine: Custom JNI bindings to libmobi.

Building from Source

  1. Clone the repository:

    git clone https://github.com/Aryan-Raj3112/episteme.git
    cd episteme
    
  2. Build: Open in Android Studio and run the ossDebug variant.

    ./gradlew assembleOssDebug
    

Open Source Libraries

This project is made possible by the Android open-source ecosystem:

  • Core & UI: AndroidX, Jetpack Compose, Kotlinx Serialization
  • Document Engines: PdfiumAndroidKt (PDF), libmobi (MOBI/AZW3), Google WOFF2 (Fonts)
  • Parsers: Jsoup (HTML/EPUB), Flexmark (Markdown)
  • Media & Image Loading: Coil, Media3 (ExoPlayer)
  • Utilities: Room (Database), Timber (Logging)

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.