1
0
Fork 0
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:
Nikolay Pultsin 2013-03-02 16:51:43 +04:00
parent 32e122113a
commit c7ab4d386b
8 changed files with 18 additions and 13 deletions

View file

@ -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));

View file

@ -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();
}

View file

@ -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);
}

View file

@ -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) {

View file

@ -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(

View file

@ -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) {

View file

@ -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);

View file

@ -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);