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