-
-
Notifications
You must be signed in to change notification settings - Fork 9
Feat: Reading History #51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Jerson2000
commented
Dec 31, 2025
- Added reading history
- Fix bionic reading toggle button behavior
- Refactor allnovel source
…e to enhance reading experience with better dialogue and paragraph formatting
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces a comprehensive reading history feature, fixes bionic reading toggle behavior, and refactors the AllNovel source implementation. The changes include new database entities for caching novel and chapter metadata, a complete reading history tracking system, and improvements to the reader experience.
Key Changes
- Reading History System: New
ReadHistoryentity tracks user reading progress with timestamps, scroll positions, and supports navigation back to the exact reading position - Metadata Caching: Implemented 24-hour caching for novel details and chapter lists using new
NovelMetadataandChapterMetadataentities to reduce network calls - AllNovel Source Refactoring: Changed from relative to absolute URLs, improved content parsing with dialogue separation, and switched to latest-release novel listing
Reviewed changes
Copilot reviewed 32 out of 33 changed files in this pull request and generated 23 comments.
Show a summary per file
| File | Description |
|---|---|
app/src/main/java/org/ranobe/ranobe/models/ReadHistory.java |
New model for tracking reading history with position, timestamps, and novel metadata |
app/src/main/java/org/ranobe/ranobe/models/NovelMetadata.java |
Caching entity for novel details with expiry tracking |
app/src/main/java/org/ranobe/ranobe/models/ChapterMetadata.java |
Caching entity for chapter lists with expiry tracking |
app/src/main/java/org/ranobe/ranobe/database/dao/ReadHistoryDao.java |
DAO for read history operations including queries for latest reads per novel |
app/src/main/java/org/ranobe/ranobe/database/dao/NovelMetadataDao.java |
DAO for novel metadata caching operations |
app/src/main/java/org/ranobe/ranobe/database/dao/ChapterMetadataDao.java |
DAO for chapter metadata caching operations |
app/src/main/java/org/ranobe/ranobe/database/mapper/ChapterMapper.java |
Mapper utilities for converting between Chapter, ChapterMetadata, and ReadHistory |
app/src/main/java/org/ranobe/ranobe/database/mapper/NovelMapper.java |
Mapper utilities for converting between Novel and NovelMetadata |
app/src/main/java/org/ranobe/ranobe/ui/history/viewmodel/HistoryViewModel.java |
ViewModel managing reading history operations and queries |
app/src/main/java/org/ranobe/ranobe/ui/history/adapter/HistoryAdapter.java |
RecyclerView adapter displaying reading history with novel cover, chapter, and timestamp |
app/src/main/java/org/ranobe/ranobe/ui/history/History.java |
Fragment displaying reading history with navigation to details or reader |
app/src/main/java/org/ranobe/ranobe/ui/reader/ReaderActivity.java |
Updated to track and restore reading position using history data and fixed bionic reading toggle |
app/src/main/java/org/ranobe/ranobe/ui/reader/sheet/CustomizeReader.java |
Sets initial bionic reading toggle state from saved preferences |
app/src/main/java/org/ranobe/ranobe/ui/reader/adapter/PageAdapter.java |
Initializes bionic reading state from saved preferences |
app/src/main/java/org/ranobe/ranobe/ui/details/viewmodel/DetailsViewModel.java |
Implements caching layer with 24-hour expiry for novel details |
app/src/main/java/org/ranobe/ranobe/ui/details/Details.java |
Uses history data to show "Continue" button instead of reading list count |
app/src/main/java/org/ranobe/ranobe/ui/chapters/viewmodel/ChaptersViewModel.java |
Implements caching layer with 24-hour expiry for chapter lists |
app/src/main/java/org/ranobe/ranobe/ui/chapters/adapter/ChapterAdapter.java |
Updated to use ReadHistory for marking chapters as read instead of ReadingList |
app/src/main/java/org/ranobe/ranobe/ui/chapters/Chapters.java |
Integrates with HistoryViewModel for mark as read/unread operations |
app/src/main/java/org/ranobe/ranobe/sources/en/AllNovel.java |
Refactored to use absolute URLs, improved dialogue parsing, and switched to latest releases |
app/src/main/java/org/ranobe/ranobe/util/DateUtils.java |
Utility class for formatting timestamps and generating relative time strings |
app/src/main/java/org/ranobe/ranobe/config/Ranobe.java |
Added bionic reader preference storage and database version bump to 3 |
app/src/main/java/org/ranobe/ranobe/database/RanobeDatabase.java |
Added new DAOs and entities for metadata caching and reading history |
app/src/main/java/org/ranobe/ranobe/interfaces/OnItemClickListener.java |
Generic click listener interface for flexible item interaction |
app/src/main/res/layout/fragment_history.xml |
Layout for history fragment with RecyclerView |
app/src/main/res/layout/item_history.xml |
Layout for history list items showing novel cover, title, chapter, and timestamp |
app/src/main/res/navigation/nav_graph.xml |
Added history fragment to navigation graph |
app/src/main/res/menu/menu_navbar.xml |
Added history menu item to bottom navigation |
app/src/main/res/values/strings.xml |
Added "History" string resource |
app/src/main/res/drawable/ic_history.xml |
History icon for navigation |
app/schemas/org.ranobe.ranobe.database.RanobeDatabase/3.json |
Database schema for version 3 with new entities |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.