1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-05 02:39:23 +02:00

send BookAdded event for each 16th book (and for the last book) instead of sending for each book

This commit is contained in:
Nikolay Pultsin 2011-10-01 00:51:21 +01:00
parent b853db3728
commit edb3e640e0
2 changed files with 10 additions and 3 deletions

View file

@ -22,7 +22,7 @@ actions:
3c from book info activity using button 3c from book info activity using button
DONE single book activity DONE single book activity
depends_on_ip (?) DONE depends_on_ip (?)
иконки в main menu иконки в main menu

View file

@ -151,6 +151,7 @@ public final class Library {
Book book = orphanedBooksByFileId.get(fileId); Book book = orphanedBooksByFileId.get(fileId);
if (book != null && (!doReadMetaInfo || book.readMetaInfo())) { if (book != null && (!doReadMetaInfo || book.readMetaInfo())) {
addBookToLibrary(book); addBookToLibrary(book);
fireModelChangedEvent(ChangeListener.Code.BookAdded);
newBooks.add(book); newBooks.add(book);
return; return;
} }
@ -158,6 +159,7 @@ public final class Library {
book = new Book(file); book = new Book(file);
if (book.readMetaInfo()) { if (book.readMetaInfo()) {
addBookToLibrary(book); addBookToLibrary(book);
fireModelChangedEvent(ChangeListener.Code.BookAdded);
newBooks.add(book); newBooks.add(book);
return; return;
} }
@ -260,8 +262,6 @@ public final class Library {
if (found != null && book.matches(found.getPattern())) { if (found != null && book.matches(found.getPattern())) {
found.getBookSubTree(book, true); found.getBookSubTree(book, true);
} }
fireModelChangedEvent(ChangeListener.Code.BookAdded);
} }
private void fireModelChangedEvent(ChangeListener.Code code) { private void fireModelChangedEvent(ChangeListener.Code code) {
@ -304,6 +304,7 @@ public final class Library {
removeFromTree(ROOT_BY_AUTHOR, book); removeFromTree(ROOT_BY_AUTHOR, book);
removeFromTree(ROOT_BY_TAG, book); removeFromTree(ROOT_BY_TAG, book);
addBookToLibrary(book); addBookToLibrary(book);
fireModelChangedEvent(ChangeListener.Code.BookAdded);
} }
private void build() { private void build() {
@ -362,6 +363,7 @@ public final class Library {
} }
final Set<Book> orphanedBooks = new HashSet<Book>(); final Set<Book> orphanedBooks = new HashSet<Book>();
int count = 0;
for (Book book : savedBooksByFileId.values()) { for (Book book : savedBooksByFileId.values()) {
synchronized (this) { synchronized (this) {
if (book.File.exists()) { if (book.File.exists()) {
@ -380,6 +382,9 @@ public final class Library {
} }
if (doAdd) { if (doAdd) {
addBookToLibrary(book); addBookToLibrary(book);
if (++count % 16 == 0) {
fireModelChangedEvent(ChangeListener.Code.BookAdded);
}
} }
} else { } else {
myRootTree.removeBook(book, true); myRootTree.removeBook(book, true);
@ -388,6 +393,7 @@ public final class Library {
} }
} }
} }
fireModelChangedEvent(ChangeListener.Code.BookAdded);
db.setExistingFlag(orphanedBooks, false); db.setExistingFlag(orphanedBooks, false);
// Step 3: collect books from physical files; add new, update already added, // Step 3: collect books from physical files; add new, update already added,
@ -414,6 +420,7 @@ public final class Library {
helpBook.readMetaInfo(); helpBook.readMetaInfo();
} }
addBookToLibrary(helpBook); addBookToLibrary(helpBook);
fireModelChangedEvent(ChangeListener.Code.BookAdded);
// Step 5: save changes into database // Step 5: save changes into database
fileInfos.save(); fileInfos.save();