From aa4791db4f022e67cc68d4262c0b41d42737ef8c Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Sun, 15 Apr 2012 18:59:59 +0100 Subject: [PATCH] fixed library tree comparison --- .../fbreader/library/AuthorTree.java | 2 +- .../fbreader/library/BookTree.java | 19 +++++++++++++++++++ .../fbreader/library/SeriesTree.java | 5 +++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/org/geometerplus/fbreader/library/AuthorTree.java b/src/org/geometerplus/fbreader/library/AuthorTree.java index d6d9618f4..e64f9b9d4 100644 --- a/src/org/geometerplus/fbreader/library/AuthorTree.java +++ b/src/org/geometerplus/fbreader/library/AuthorTree.java @@ -46,7 +46,7 @@ public class AuthorTree extends LibraryTree { @Override protected String getSortKey() { - return Author != null ? Author.SortKey + ":" + Author.DisplayName : null; + return Author != null ? "ASK:" + Author.SortKey + ":" + Author.DisplayName : null; } @Override diff --git a/src/org/geometerplus/fbreader/library/BookTree.java b/src/org/geometerplus/fbreader/library/BookTree.java index 01f9dbeaa..df457909e 100644 --- a/src/org/geometerplus/fbreader/library/BookTree.java +++ b/src/org/geometerplus/fbreader/library/BookTree.java @@ -21,6 +21,8 @@ package org.geometerplus.fbreader.library; import org.geometerplus.zlibrary.core.image.ZLImage; +import org.geometerplus.fbreader.tree.FBTree; + public class BookTree extends LibraryTree { public final Book Book; private final boolean myShowAuthors; @@ -86,6 +88,23 @@ public class BookTree extends LibraryTree { return book != null && book.equals(Book); } + @Override + protected String getSortKey() { + return "BSK:" + super.getSortKey(); + } + + @Override + public int compareTo(FBTree tree) { + final int cmp = super.compareTo(tree); + if (cmp == 0 && tree instanceof BookTree) { + final Book b = ((BookTree)tree).Book; + if (Book != null && b != null) { + return Book.File.getPath().compareTo(b.File.getPath()); + } + } + return cmp; + } + @Override public boolean equals(Object object) { if (object == this) { diff --git a/src/org/geometerplus/fbreader/library/SeriesTree.java b/src/org/geometerplus/fbreader/library/SeriesTree.java index 0c176d15f..a0e679d82 100644 --- a/src/org/geometerplus/fbreader/library/SeriesTree.java +++ b/src/org/geometerplus/fbreader/library/SeriesTree.java @@ -61,4 +61,9 @@ public final class SeriesTree extends LibraryTree { final SeriesInfo info = book.getSeriesInfo(); return info != null && Series.equals(info.Name); } + + @Override + protected String getSortKey() { + return "SSK:" + super.getSortKey(); + } }