mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-04 18:29:23 +02:00
bookmarks: list limited list
This commit is contained in:
parent
32e122113a
commit
c7ab4d386b
8 changed files with 18 additions and 13 deletions
|
@ -81,7 +81,7 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte
|
|||
}
|
||||
|
||||
private void init() {
|
||||
myAllBooksBookmarks = new ArrayList<Bookmark>(myCollection.allBookmarks());
|
||||
myAllBooksBookmarks = new ArrayList<Bookmark>(myCollection.bookmarks(0, 100000));
|
||||
Collections.sort(myAllBooksBookmarks, new Bookmark.ByTimeComparator());
|
||||
|
||||
final Book book = SerializerUtil.deserializeBook(getIntent().getStringExtra(FBReader.BOOK_KEY));
|
||||
|
|
|
@ -523,12 +523,12 @@ public class BookCollectionShadow extends AbstractBookCollection implements Serv
|
|||
}
|
||||
}
|
||||
|
||||
public synchronized List<Bookmark> allBookmarks() {
|
||||
public synchronized List<Bookmark> bookmarks(long fromId, int limitCount) {
|
||||
if (myInterface == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
try {
|
||||
return SerializerUtil.deserializeBookmarkList(myInterface.allBookmarks());
|
||||
return SerializerUtil.deserializeBookmarkList(myInterface.bookmarks(fromId, limitCount));
|
||||
} catch (RemoteException e) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
|
|
@ -53,7 +53,7 @@ interface LibraryInterface {
|
|||
void markHyperlinkAsVisited(in String book, in String linkId);
|
||||
|
||||
List<String> invisibleBookmarks(in String book);
|
||||
List<String> allBookmarks();
|
||||
List<String> bookmarks(in long fromId, in int limitCount);
|
||||
String saveBookmark(in String bookmark);
|
||||
void deleteBookmark(in String bookmark);
|
||||
}
|
||||
|
|
|
@ -300,8 +300,8 @@ public class LibraryService extends Service {
|
|||
);
|
||||
}
|
||||
|
||||
public List<String> allBookmarks() {
|
||||
return SerializerUtil.serializeBookmarkList(myCollection.allBookmarks());
|
||||
public List<String> bookmarks(long fromId, int limitCount) {
|
||||
return SerializerUtil.serializeBookmarkList(myCollection.bookmarks(fromId, limitCount));
|
||||
}
|
||||
|
||||
public String saveBookmark(String serialized) {
|
||||
|
|
|
@ -762,11 +762,16 @@ final class SQLiteBooksDatabase extends BooksDatabase {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected List<Bookmark> loadAllVisibleBookmarks() {
|
||||
protected List<Bookmark> loadVisibleBookmarks(long fromId, int limitCount) {
|
||||
LinkedList<Bookmark> list = new LinkedList<Bookmark>();
|
||||
myDatabase.execSQL("DELETE FROM Bookmarks WHERE book_id = -1");
|
||||
Cursor cursor = myDatabase.rawQuery(
|
||||
"SELECT Bookmarks.bookmark_id,Bookmarks.book_id,Books.title,Bookmarks.bookmark_text,Bookmarks.creation_time,Bookmarks.modification_time,Bookmarks.access_time,Bookmarks.access_counter,Bookmarks.model_id,Bookmarks.paragraph,Bookmarks.word,Bookmarks.char FROM Bookmarks INNER JOIN Books ON Books.book_id = Bookmarks.book_id WHERE Bookmarks.visible = 1", null
|
||||
Cursor cursor = myDatabase.rawQuery("SELECT" +
|
||||
" bm.bookmark_id,bm.book_id,b.title,bm.bookmark_text," +
|
||||
"bm.creation_time,bm.modification_time,bm.access_time,bm.access_counter," +
|
||||
"bm.model_id,bm.paragraph,bm.word,bm.char" +
|
||||
" FROM Bookmarks AS bm INNER JOIN Books AS b ON b.book_id = bm.book_id" +
|
||||
" WHERE bm.bookmark_id >= ? AND bm.visible = 1 ORDER BY bm.bookmark_id LIMIT ?",
|
||||
new String[] { String.valueOf(fromId), String.valueOf(limitCount) }
|
||||
);
|
||||
while (cursor.moveToNext()) {
|
||||
list.add(createBookmark(
|
||||
|
|
|
@ -757,8 +757,8 @@ public class BookCollection extends AbstractBookCollection {
|
|||
}
|
||||
}
|
||||
|
||||
public List<Bookmark> allBookmarks() {
|
||||
return myDatabase.loadAllVisibleBookmarks();
|
||||
public List<Bookmark> bookmarks(long fromId, int limitCount) {
|
||||
return myDatabase.loadVisibleBookmarks(fromId, limitCount);
|
||||
}
|
||||
|
||||
public List<Bookmark> invisibleBookmarks(Book book) {
|
||||
|
|
|
@ -87,7 +87,7 @@ public abstract class BooksDatabase {
|
|||
}
|
||||
|
||||
protected abstract List<Bookmark> loadBookmarks(long bookId, boolean isVisible);
|
||||
protected abstract List<Bookmark> loadAllVisibleBookmarks();
|
||||
protected abstract List<Bookmark> loadVisibleBookmarks(long fromId, int limitCount);
|
||||
protected abstract long saveBookmark(Bookmark bookmark);
|
||||
protected abstract void deleteBookmark(Bookmark bookmark);
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ public interface IBookCollection {
|
|||
boolean isHyperlinkVisited(Book book, String linkId);
|
||||
void markHyperlinkAsVisited(Book book, String linkId);
|
||||
|
||||
List<Bookmark> allBookmarks();
|
||||
List<Bookmark> bookmarks(long fromId, int limitCount);
|
||||
List<Bookmark> invisibleBookmarks(Book book);
|
||||
void saveBookmark(Bookmark bookmark);
|
||||
void deleteBookmark(Bookmark bookmark);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue