Skip to content

Conversation

@Jerson2000
Copy link
Contributor

  • Added reading history
  • Fix bionic reading toggle button behavior
  • Refactor allnovel source

…e to enhance reading experience with better dialogue and paragraph formatting
@ap-atul ap-atul requested a review from Copilot January 2, 2026 06:06
@ap-atul ap-atul added the enhancement New feature or request label Jan 2, 2026
Copy link

Copilot AI left a 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 ReadHistory entity 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 NovelMetadata and ChapterMetadata entities 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants