General improvments (#114)
* Add "Keep Screen On" feature to PDF and Epub readers. * Add `rawLibraryFiles` to `MainViewModel` and improve file path resolution in `SharedComposables`. Specifically: - Updated `MainViewModel` state and UI logic to track and provide unfiltered library files. - Enhanced file path formatting in `SharedComposables` to better handle Document, Tree, and primary storage URIs. - Added scrollable support for long text values in `DetailItem` composable. - Passed `rawLibraryFiles` to `FolderSyncScreen` to ensure sync logic uses the base file list. * Update info bar background and text colors in EpubReaderScreen to match the selected theme. * Prevent accidental UI bar toggles immediately after scrolling in EPUB vertical mode. * feat: implement EPUB highlights sync and legacy migration - Implement Cloud and Local Folder sync for EPUB highlights. - Add highlight JSON serialization/deserialization helpers in EpubReaderAnnotations. - Implement automatic migration of highlights from SharedPreferences to the Database on book open. - Add cleanup logic to remove legacy SharedPreferences data after successful DB migration. - Update RecentFilesRepository to trigger local folder metadata sync when highlights are modified. - Update FolderSyncWorker to pull highlights and custom names from linked folder metadata. * Update intent filters
This commit is contained in:
parent
60dacf9c12
commit
4c5cd20b21
17 changed files with 404 additions and 84 deletions
|
|
@ -45,7 +45,8 @@ data class RecentFileItem(
|
|||
val bookmarksJson: String? = null,
|
||||
val sourceFolderUri: String? = null,
|
||||
val isReflowPreferred: Boolean = false,
|
||||
val customName: String? = null
|
||||
val customName: String? = null,
|
||||
val highlightsJson: String? = null
|
||||
) {
|
||||
fun getUri(): Uri? = uriString?.toUri()
|
||||
}
|
||||
|
|
@ -73,7 +74,8 @@ fun RecentFileEntity.toRecentFileItem(): RecentFileItem {
|
|||
bookmarksJson = this.bookmarks,
|
||||
sourceFolderUri = this.sourceFolderUri,
|
||||
isReflowPreferred = this.isReflowPreferred,
|
||||
customName = this.customName
|
||||
customName = this.customName,
|
||||
highlightsJson = this.highlights
|
||||
)
|
||||
}
|
||||
|
||||
|
|
@ -100,7 +102,8 @@ fun RecentFileItem.toRecentFileEntity(): RecentFileEntity {
|
|||
bookmarks = this.bookmarksJson,
|
||||
sourceFolderUri = this.sourceFolderUri,
|
||||
isReflowPreferred = this.isReflowPreferred,
|
||||
customName = this.customName
|
||||
customName = this.customName,
|
||||
highlights = this.highlightsJson
|
||||
)
|
||||
}
|
||||
|
||||
|
|
@ -122,7 +125,8 @@ fun RecentFileItem.toBookMetadata(): BookMetadata {
|
|||
lastModifiedTimestamp = this.lastModifiedTimestamp,
|
||||
bookmarksJson = this.bookmarksJson,
|
||||
hasAnnotations = false,
|
||||
customName = this.customName
|
||||
customName = this.customName,
|
||||
highlightsJson = this.highlightsJson
|
||||
)
|
||||
}
|
||||
|
||||
|
|
@ -147,6 +151,7 @@ fun BookMetadata.toRecentFileItem(): RecentFileItem {
|
|||
lastModifiedTimestamp = this.lastModifiedTimestamp,
|
||||
isDeleted = this.isDeleted,
|
||||
bookmarksJson = this.bookmarksJson,
|
||||
customName = this.customName
|
||||
customName = this.customName,
|
||||
highlightsJson = this.highlightsJson
|
||||
)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue