diff --git a/src/org/geometerplus/android/fbreader/libraryService/SQLiteBooksDatabase.java b/src/org/geometerplus/android/fbreader/libraryService/SQLiteBooksDatabase.java index 5fde7f5e3..4b5066e6f 100644 --- a/src/org/geometerplus/android/fbreader/libraryService/SQLiteBooksDatabase.java +++ b/src/org/geometerplus/android/fbreader/libraryService/SQLiteBooksDatabase.java @@ -367,7 +367,21 @@ public final class SQLiteBooksDatabase extends BooksDatabase { myInsertBookAuthorStatement.execute(); } - protected List loadAuthors(long bookId) { + protected List listAuthors() { + final Cursor cursor = myDatabase.rawQuery("SELECT name,sort_key FROM Authors", null); + if (!cursor.moveToNext()) { + cursor.close(); + return null; + } + final ArrayList list = new ArrayList(); + do { + list.add(new Author(cursor.getString(0), cursor.getString(1))); + } while (cursor.moveToNext()); + cursor.close(); + return list; + } + + protected List listAuthors(long bookId) { final Cursor cursor = myDatabase.rawQuery("SELECT Authors.name,Authors.sort_key FROM BookAuthor INNER JOIN Authors ON Authors.author_id = BookAuthor.author_id WHERE BookAuthor.book_id = ?", new String[] { "" + bookId }); if (!cursor.moveToNext()) { cursor.close(); @@ -459,7 +473,7 @@ public final class SQLiteBooksDatabase extends BooksDatabase { return tag; } - protected List loadTags(long bookId) { + protected List listTags(long bookId) { final Cursor cursor = myDatabase.rawQuery("SELECT Tags.tag_id FROM BookTag INNER JOIN Tags ON Tags.tag_id = BookTag.tag_id WHERE BookTag.book_id = ?", new String[] { "" + bookId }); if (!cursor.moveToNext()) { cursor.close(); @@ -515,7 +529,7 @@ public final class SQLiteBooksDatabase extends BooksDatabase { } } - protected SeriesInfo loadSeriesInfo(long bookId) { + protected SeriesInfo getSeriesInfo(long bookId) { final Cursor cursor = myDatabase.rawQuery("SELECT Series.name,BookSeries.book_index FROM BookSeries INNER JOIN Series ON Series.series_id = BookSeries.series_id WHERE BookSeries.book_id = ?", new String[] { "" + bookId }); SeriesInfo info = null; if (cursor.moveToNext()) { diff --git a/src/org/geometerplus/fbreader/book/Book.java b/src/org/geometerplus/fbreader/book/Book.java index 215d57b9c..a83dfa073 100644 --- a/src/org/geometerplus/fbreader/book/Book.java +++ b/src/org/geometerplus/fbreader/book/Book.java @@ -153,9 +153,9 @@ public class Book { public void reloadInfoFromDatabase() { final BooksDatabase database = BooksDatabase.Instance(); database.reloadBook(this); - myAuthors = database.loadAuthors(myId); - myTags = database.loadTags(myId); - mySeriesInfo = database.loadSeriesInfo(myId); + myAuthors = database.listAuthors(myId); + myTags = database.listTags(myId); + mySeriesInfo = database.getSeriesInfo(myId); myIsSaved = true; } @@ -201,9 +201,9 @@ public class Book { } void loadLists(BooksDatabase database) { - myAuthors = database.loadAuthors(myId); - myTags = database.loadTags(myId); - mySeriesInfo = database.loadSeriesInfo(myId); + myAuthors = database.listAuthors(myId); + myTags = database.listTags(myId); + mySeriesInfo = database.getSeriesInfo(myId); myIsSaved = true; } diff --git a/src/org/geometerplus/fbreader/book/BooksDatabase.java b/src/org/geometerplus/fbreader/book/BooksDatabase.java index dcad33f35..2720ef09e 100644 --- a/src/org/geometerplus/fbreader/book/BooksDatabase.java +++ b/src/org/geometerplus/fbreader/book/BooksDatabase.java @@ -62,9 +62,10 @@ public abstract class BooksDatabase { public /*protected*/ abstract void reloadBook(Book book); public /*protected*/ abstract Book loadBookByFile(long fileId, ZLFile file); - protected abstract List loadAuthors(long bookId); - protected abstract List loadTags(long bookId); - protected abstract SeriesInfo loadSeriesInfo(long bookId); + protected abstract List listAuthors(); + protected abstract List listAuthors(long bookId); + protected abstract List listTags(long bookId); + protected abstract SeriesInfo getSeriesInfo(long bookId); public /*protected*/ abstract void updateBookInfo(long bookId, long fileId, String encoding, String language, String title); public /*protected*/ abstract long insertBookInfo(ZLFile file, String encoding, String language, String title); protected abstract void deleteAllBookAuthors(long bookId);