Open
Conversation
Contributor
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.
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.
app/src/main/java/org/ranobe/ranobe/ui/reader/ReaderActivity.java
Outdated
Show resolved
Hide resolved
app/src/main/java/org/ranobe/ranobe/ui/chapters/viewmodel/ChaptersViewModel.java
Show resolved
Hide resolved
app/src/main/java/org/ranobe/ranobe/ui/history/adapter/HistoryAdapter.java
Show resolved
Hide resolved
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.