mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-16 10:56:50 -04:00
Save bookmark when it does not exist in the file since bookmarks is now written in a file with libkiwix
This commit is contained in:
parent
88e30e19fd
commit
d68c890e8f
@ -56,15 +56,11 @@ class LibkiwixBookmarks @Inject constructor(
|
||||
manager.readBookmarkFile(bookmarkFile.canonicalPath)
|
||||
}
|
||||
|
||||
fun bookmarks(): Flowable<List<Page>> {
|
||||
val bookMarksArray: Array<out Bookmark>? = library.getBookmarks(true)
|
||||
val bookmarkList = bookMarksArray?.toList() ?: emptyList()
|
||||
|
||||
return Flowable.fromIterable(bookmarkList)
|
||||
fun bookmarks(): Flowable<List<Page>> =
|
||||
Flowable.fromIterable(getBookmarksList())
|
||||
.map(::LibkiwixBookmarkItem)
|
||||
.toList()
|
||||
.toFlowable() as Flowable<List<Page>>
|
||||
}
|
||||
|
||||
override fun pages(): Flowable<List<Page>> = bookmarks()
|
||||
|
||||
@ -86,12 +82,7 @@ class LibkiwixBookmarks @Inject constructor(
|
||||
update(zimFileReader.jniKiwixReader)
|
||||
}
|
||||
addBookToLibrary(book)
|
||||
|
||||
// Retrieve bookmarks from the library
|
||||
val bookmarks = library.getBookmarks(true)
|
||||
|
||||
// Extract URLs from bookmarks
|
||||
val urls = bookmarks.map { it.url }
|
||||
val urls = getBookmarksList().map { it.url }
|
||||
|
||||
// Emit the list of URLs
|
||||
emitter.onNext(urls)
|
||||
@ -101,6 +92,7 @@ class LibkiwixBookmarks @Inject constructor(
|
||||
}
|
||||
|
||||
fun saveBookmark(libkiwixBookmarkItem: LibkiwixBookmarkItem) {
|
||||
if (!isBookMarkExist(libkiwixBookmarkItem)) {
|
||||
addBookToLibrary(libkiwixBookmarkItem.libKiwixBook)
|
||||
val bookmark = Bookmark().apply {
|
||||
bookId = libkiwixBookmarkItem.zimId
|
||||
@ -112,6 +104,7 @@ class LibkiwixBookmarks @Inject constructor(
|
||||
writeBookMarksToFile()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun addBookToLibrary(libKiwixBook: Book?) {
|
||||
library.addBook(libKiwixBook)
|
||||
@ -130,4 +123,11 @@ class LibkiwixBookmarks @Inject constructor(
|
||||
private fun writeBookMarksToFile() {
|
||||
library.writeBookmarksToFile(bookmarkFile.canonicalPath)
|
||||
}
|
||||
|
||||
private fun getBookmarksList() =
|
||||
library.getBookmarks(true)?.toList() ?: emptyList()
|
||||
|
||||
private fun isBookMarkExist(libkiwixBookmarkItem: LibkiwixBookmarkItem): Boolean =
|
||||
getBookmarksList()
|
||||
.any { it.url == libkiwixBookmarkItem.bookmarkUrl && it.bookId == libkiwixBookmarkItem.zimId }
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user