mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-04 02:09:35 +02:00
BookmarksActivity optimization
This commit is contained in:
parent
31247e39bf
commit
19aeb9c9b6
8 changed files with 95 additions and 24 deletions
|
@ -735,10 +735,10 @@ final class SQLiteBooksDatabase extends BooksDatabase {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected List<Bookmark> loadBookmarks(long bookId, boolean visible) {
|
||||
protected List<Bookmark> loadInvisibleBookmarks(long bookId) {
|
||||
LinkedList<Bookmark> list = new LinkedList<Bookmark>();
|
||||
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.book_id = ? AND Bookmarks.visible = ?", new String[] { "" + bookId, visible ? "1" : "0" }
|
||||
"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.book_id = ? AND bm.visible = 0", new String[] { String.valueOf(bookId) }
|
||||
);
|
||||
while (cursor.moveToNext()) {
|
||||
list.add(createBookmark(
|
||||
|
@ -754,7 +754,7 @@ final class SQLiteBooksDatabase extends BooksDatabase {
|
|||
(int)cursor.getLong(9),
|
||||
(int)cursor.getLong(10),
|
||||
(int)cursor.getLong(11),
|
||||
visible
|
||||
false
|
||||
));
|
||||
}
|
||||
cursor.close();
|
||||
|
@ -764,7 +764,6 @@ final class SQLiteBooksDatabase extends BooksDatabase {
|
|||
@Override
|
||||
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" +
|
||||
" bm.bookmark_id,bm.book_id,b.title,bm.bookmark_text," +
|
||||
"bm.creation_time,bm.modification_time,bm.access_time,bm.access_counter," +
|
||||
|
@ -794,6 +793,40 @@ final class SQLiteBooksDatabase extends BooksDatabase {
|
|||
return list;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected List<Bookmark> loadVisibleBookmarks(long bookId, long fromId, int limitCount) {
|
||||
LinkedList<Bookmark> list = new LinkedList<Bookmark>();
|
||||
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 b.book_id = ? AND bm.bookmark_id >= ? AND bm.visible = 1" +
|
||||
" ORDER BY bm.bookmark_id LIMIT ?",
|
||||
new String[] { String.valueOf(bookId), String.valueOf(fromId), String.valueOf(limitCount) }
|
||||
);
|
||||
while (cursor.moveToNext()) {
|
||||
list.add(createBookmark(
|
||||
cursor.getLong(0),
|
||||
cursor.getLong(1),
|
||||
cursor.getString(2),
|
||||
cursor.getString(3),
|
||||
SQLiteUtil.getDate(cursor, 4),
|
||||
SQLiteUtil.getDate(cursor, 5),
|
||||
SQLiteUtil.getDate(cursor, 6),
|
||||
(int)cursor.getLong(7),
|
||||
cursor.getString(8),
|
||||
(int)cursor.getLong(9),
|
||||
(int)cursor.getLong(10),
|
||||
(int)cursor.getLong(11),
|
||||
true
|
||||
));
|
||||
}
|
||||
cursor.close();
|
||||
return list;
|
||||
}
|
||||
|
||||
private SQLiteStatement myInsertBookmarkStatement;
|
||||
private SQLiteStatement myUpdateBookmarkStatement;
|
||||
@Override
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue