From b512d3505fb38ab0a2b525d66594bc858f32f22c Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Thu, 22 Oct 2015 22:35:03 +0100 Subject: [PATCH] do not clean text cache on progress update --- .../fbreader/book/AbstractBook.java | 53 ++++++++++-------- .../fbreader/book/BookCollection.java | 12 ++-- .../geometerplus/fbreader/book/BookEvent.java | 1 + .../geometerplus/fbreader/book/BookUtil.java | 2 +- .../geometerplus/fbreader/book/DbBook.java | 55 ++++++++++++++++--- .../fbreader/library/TitleListTree.java | 3 +- 6 files changed, 88 insertions(+), 38 deletions(-) diff --git a/fbreader/app/src/main/java/org/geometerplus/fbreader/book/AbstractBook.java b/fbreader/app/src/main/java/org/geometerplus/fbreader/book/AbstractBook.java index d80c4e13b..e35edf6f2 100644 --- a/fbreader/app/src/main/java/org/geometerplus/fbreader/book/AbstractBook.java +++ b/fbreader/app/src/main/java/org/geometerplus/fbreader/book/AbstractBook.java @@ -50,14 +50,19 @@ public abstract class AbstractBook extends TitledEntity { public volatile boolean HasBookmark; - protected volatile boolean myIsSaved; + protected enum SaveState { + Saved, + ProgressNotSaved, + NotSaved; + }; + protected volatile SaveState mySaveState = SaveState.NotSaved; AbstractBook(long id, String title, String encoding, String language) { super(title); myId = id; myEncoding = encoding; myLanguage = language; - myIsSaved = true; + mySaveState = SaveState.Saved; } public abstract String getPath(); @@ -71,28 +76,28 @@ public abstract class AbstractBook extends TitledEntity { setLanguage(book.myLanguage); if (!ComparisonUtil.equal(myAuthors, book.myAuthors)) { myAuthors = book.myAuthors != null ? new ArrayList(book.myAuthors) : null; - myIsSaved = false; + mySaveState = SaveState.NotSaved; } if (!ComparisonUtil.equal(myTags, book.myTags)) { myTags = book.myTags != null ? new ArrayList(book.myTags) : null; - myIsSaved = false; + mySaveState = SaveState.NotSaved; } if (!MiscUtil.listsEquals(myLabels, book.myLabels)) { myLabels = book.myLabels != null ? new ArrayList