From 2be210d0bb1064b284ec70a3ac118a99b61b79c6 Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Wed, 30 Sep 2015 19:49:14 +0100 Subject: [PATCH] sync with premium version --- .../fbreader/ProcessHyperlinkAction.java | 1 + .../android/fbreader/RunPluginAction.java | 1 + .../fbreader/SelectionBookmarkAction.java | 1 + .../android/fbreader/ShowBookInfoAction.java | 1 + .../android/fbreader/ShowBookmarksAction.java | 1 + .../android/fbreader/ShowLibraryAction.java | 1 + .../fbreader/ShowNetworkLibraryAction.java | 1 + .../fbreader/ShowPreferencesAction.java | 1 + .../android/fbreader/ShowTOCAction.java | 2 + .../android/fbreader/TOCActivity.java | 1 + .../fbreader/bookmark/BookmarksActivity.java | 1 - .../bookmark/EditBookmarkActivity.java | 2 +- .../fbreader/image/ImageViewActivity.java | 2 +- .../fbreader/library/BookInfoActivity.java | 2 +- .../network/NetworkBookInfoActivity.java | 4 +- .../network/action/ManageCatalogsAction.java | 2 +- .../network/action/OpenCatalogAction.java | 2 +- .../network/action/ShowBookInfoAction.java | 3 +- .../network/auth/ActivityNetworkContext.java | 2 +- .../network/auth/WebAuthorisationScreen.java | 2 +- .../preferences/ZLPreferenceActivity.java | 2 +- .../android/fbreader/tree/TreeActivity.java | 2 +- .../{fbreader => util}/OrientationUtil.java | 2 +- .../fbreader/book/AbstractBook.java | 50 +++++++++++++++++-- .../org/geometerplus/fbreader/book/Label.java | 2 +- 25 files changed, 71 insertions(+), 20 deletions(-) rename fbreader/app/src/main/java/org/geometerplus/android/{fbreader => util}/OrientationUtil.java (97%) diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ProcessHyperlinkAction.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ProcessHyperlinkAction.java index e5c5130be..6c84753f2 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ProcessHyperlinkAction.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ProcessHyperlinkAction.java @@ -44,6 +44,7 @@ import org.geometerplus.android.fbreader.dict.DictionaryUtil; import org.geometerplus.android.fbreader.image.ImageViewActivity; import org.geometerplus.android.fbreader.network.*; import org.geometerplus.android.fbreader.network.auth.ActivityNetworkContext; +import org.geometerplus.android.util.OrientationUtil; import org.geometerplus.android.util.UIMessageUtil; class ProcessHyperlinkAction extends FBAndroidAction { diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/RunPluginAction.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/RunPluginAction.java index 5a0e4fafe..2ec647c08 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/RunPluginAction.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/RunPluginAction.java @@ -26,6 +26,7 @@ import android.net.Uri; import org.geometerplus.fbreader.fbreader.FBReaderApp; import org.geometerplus.android.fbreader.api.PluginApi; +import org.geometerplus.android.util.OrientationUtil; class RunPluginAction extends FBAndroidAction { private final Uri myUri; diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/SelectionBookmarkAction.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/SelectionBookmarkAction.java index a1cd2f04c..7ea6de462 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/SelectionBookmarkAction.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/SelectionBookmarkAction.java @@ -34,6 +34,7 @@ import org.geometerplus.fbreader.fbreader.FBReaderApp; import org.geometerplus.android.fbreader.api.FBReaderIntents; import org.geometerplus.android.fbreader.bookmark.EditBookmarkActivity; +import org.geometerplus.android.util.OrientationUtil; public class SelectionBookmarkAction extends FBAndroidAction { SelectionBookmarkAction(FBReader baseApplication, FBReaderApp fbreader) { diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowBookInfoAction.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowBookInfoAction.java index 88d04cfba..65cd939df 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowBookInfoAction.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowBookInfoAction.java @@ -25,6 +25,7 @@ import org.geometerplus.fbreader.fbreader.FBReaderApp; import org.geometerplus.android.fbreader.api.FBReaderIntents; import org.geometerplus.android.fbreader.library.BookInfoActivity; +import org.geometerplus.android.util.OrientationUtil; class ShowBookInfoAction extends FBAndroidAction { ShowBookInfoAction(FBReader baseActivity, FBReaderApp fbreader) { diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowBookmarksAction.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowBookmarksAction.java index 6448ad7ef..536f30f7f 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowBookmarksAction.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowBookmarksAction.java @@ -26,6 +26,7 @@ import org.geometerplus.fbreader.fbreader.FBReaderApp; import org.geometerplus.android.fbreader.api.FBReaderIntents; import org.geometerplus.android.fbreader.bookmark.BookmarksActivity; +import org.geometerplus.android.util.OrientationUtil; import org.geometerplus.android.util.PackageUtil; class ShowBookmarksAction extends FBAndroidAction { diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowLibraryAction.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowLibraryAction.java index b5907002a..50599192b 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowLibraryAction.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowLibraryAction.java @@ -26,6 +26,7 @@ import org.geometerplus.fbreader.fbreader.FBReaderApp; import org.geometerplus.android.fbreader.api.FBReaderIntents; import org.geometerplus.android.fbreader.library.LibraryActivity; +import org.geometerplus.android.util.OrientationUtil; import org.geometerplus.android.util.PackageUtil; class ShowLibraryAction extends FBAndroidAction { diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowNetworkLibraryAction.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowNetworkLibraryAction.java index 4e21172e3..944cde7e2 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowNetworkLibraryAction.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowNetworkLibraryAction.java @@ -24,6 +24,7 @@ import android.content.Intent; import org.geometerplus.fbreader.fbreader.FBReaderApp; import org.geometerplus.android.fbreader.network.NetworkLibraryPrimaryActivity; +import org.geometerplus.android.util.OrientationUtil; class ShowNetworkLibraryAction extends FBAndroidAction { ShowNetworkLibraryAction(FBReader baseActivity, FBReaderApp fbreader) { diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowPreferencesAction.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowPreferencesAction.java index 00e52c86f..24205b0ca 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowPreferencesAction.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowPreferencesAction.java @@ -24,6 +24,7 @@ import android.content.Intent; import org.geometerplus.fbreader.fbreader.FBReaderApp; import org.geometerplus.android.fbreader.preferences.PreferenceActivity; +import org.geometerplus.android.util.OrientationUtil; class ShowPreferencesAction extends FBAndroidAction { ShowPreferencesAction(FBReader baseActivity, FBReaderApp fbreader) { diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowTOCAction.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowTOCAction.java index 1ce96c91f..a5684800e 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowTOCAction.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/ShowTOCAction.java @@ -24,6 +24,8 @@ import android.content.Intent; import org.geometerplus.fbreader.bookmodel.BookModel; import org.geometerplus.fbreader.fbreader.FBReaderApp; +import org.geometerplus.android.util.OrientationUtil; + class ShowTOCAction extends FBAndroidAction { ShowTOCAction(FBReader baseActivity, FBReaderApp fbreader) { super(baseActivity, fbreader); diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/TOCActivity.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/TOCActivity.java index 3dc2f554c..455d13944 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/TOCActivity.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/TOCActivity.java @@ -35,6 +35,7 @@ import org.geometerplus.zlibrary.text.view.ZLTextWordCursor; import org.geometerplus.fbreader.bookmodel.TOCTree; import org.geometerplus.fbreader.fbreader.FBReaderApp; +import org.geometerplus.android.util.OrientationUtil; import org.geometerplus.android.util.ViewUtil; public class TOCActivity extends ListActivity { diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/bookmark/BookmarksActivity.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/bookmark/BookmarksActivity.java index 02ba17055..c495ffa1d 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/bookmark/BookmarksActivity.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/bookmark/BookmarksActivity.java @@ -38,7 +38,6 @@ import org.geometerplus.zlibrary.ui.android.R; import org.geometerplus.fbreader.book.*; import org.geometerplus.android.fbreader.FBReader; -import org.geometerplus.android.fbreader.OrientationUtil; import org.geometerplus.android.fbreader.api.FBReaderIntents; import org.geometerplus.android.fbreader.libraryService.BookCollectionShadow; import org.geometerplus.android.util.*; diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/bookmark/EditBookmarkActivity.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/bookmark/EditBookmarkActivity.java index 6116fe44e..05cf126ce 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/bookmark/EditBookmarkActivity.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/bookmark/EditBookmarkActivity.java @@ -43,9 +43,9 @@ import org.geometerplus.zlibrary.ui.android.util.ZLAndroidColorUtil; import org.geometerplus.fbreader.book.*; -import org.geometerplus.android.fbreader.OrientationUtil; import org.geometerplus.android.fbreader.api.FBReaderIntents; import org.geometerplus.android.fbreader.libraryService.BookCollectionShadow; +import org.geometerplus.android.util.OrientationUtil; import org.geometerplus.android.util.ViewUtil; public class EditBookmarkActivity extends Activity implements IBookCollection.Listener { diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/image/ImageViewActivity.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/image/ImageViewActivity.java index c0e600f8c..af773178a 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/image/ImageViewActivity.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/image/ImageViewActivity.java @@ -33,7 +33,7 @@ import org.geometerplus.zlibrary.ui.android.library.ZLAndroidLibrary; import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageData; import org.geometerplus.zlibrary.ui.android.util.ZLAndroidColorUtil; -import org.geometerplus.android.fbreader.OrientationUtil; +import org.geometerplus.android.util.OrientationUtil; public class ImageViewActivity extends Activity { public static final String URL_KEY = "fbreader.imageview.url"; diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/library/BookInfoActivity.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/library/BookInfoActivity.java index f0c91120e..9e3f4632c 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/library/BookInfoActivity.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/library/BookInfoActivity.java @@ -53,11 +53,11 @@ import org.geometerplus.fbreader.network.NetworkLibrary; import org.geometerplus.fbreader.network.HtmlUtil; import org.geometerplus.android.fbreader.FBReader; -import org.geometerplus.android.fbreader.OrientationUtil; import org.geometerplus.android.fbreader.api.FBReaderIntents; import org.geometerplus.android.fbreader.libraryService.BookCollectionShadow; import org.geometerplus.android.fbreader.preferences.EditBookInfoActivity; import org.geometerplus.android.fbreader.util.AndroidImageSynchronizer; +import org.geometerplus.android.util.OrientationUtil; public class BookInfoActivity extends Activity implements IBookCollection.Listener { private static final boolean ENABLE_EXTENDED_FILE_INFO = false; diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/NetworkBookInfoActivity.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/NetworkBookInfoActivity.java index 0bb63f262..3761332c8 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/NetworkBookInfoActivity.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/NetworkBookInfoActivity.java @@ -49,14 +49,12 @@ import org.geometerplus.fbreader.network.tree.NetworkBookTree; import org.geometerplus.fbreader.network.urlInfo.RelatedUrlInfo; import org.geometerplus.fbreader.network.urlInfo.UrlInfo; -import org.geometerplus.android.fbreader.OrientationUtil; import org.geometerplus.android.fbreader.libraryService.BookCollectionShadow; import org.geometerplus.android.fbreader.network.action.NetworkBookActions; import org.geometerplus.android.fbreader.network.action.OpenCatalogAction; import org.geometerplus.android.fbreader.network.auth.ActivityNetworkContext; import org.geometerplus.android.fbreader.util.AndroidImageSynchronizer; -import org.geometerplus.android.util.UIMessageUtil; -import org.geometerplus.android.util.UIUtil; +import org.geometerplus.android.util.*; public class NetworkBookInfoActivity extends Activity implements NetworkLibrary.ChangeListener { private NetworkBookTree myTree; diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/action/ManageCatalogsAction.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/action/ManageCatalogsAction.java index 3ed9928f7..eff9cf718 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/action/ManageCatalogsAction.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/action/ManageCatalogsAction.java @@ -29,9 +29,9 @@ import org.geometerplus.fbreader.network.tree.ManageCatalogsItemTree; import org.geometerplus.fbreader.network.NetworkTree; import org.geometerplus.fbreader.network.NetworkLibrary; import org.geometerplus.zlibrary.ui.android.R; -import org.geometerplus.android.fbreader.OrientationUtil; import org.geometerplus.android.fbreader.network.CatalogManagerActivity; import org.geometerplus.android.fbreader.network.NetworkLibraryActivity; +import org.geometerplus.android.util.OrientationUtil; public class ManageCatalogsAction extends RootAction { public ManageCatalogsAction(Activity activity) { diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/action/OpenCatalogAction.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/action/OpenCatalogAction.java index 081e03765..59a47bd96 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/action/OpenCatalogAction.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/action/OpenCatalogAction.java @@ -30,8 +30,8 @@ import org.geometerplus.zlibrary.core.network.ZLNetworkContext; import org.geometerplus.fbreader.network.*; import org.geometerplus.fbreader.network.tree.*; -import org.geometerplus.android.fbreader.OrientationUtil; import org.geometerplus.android.fbreader.network.*; +import org.geometerplus.android.util.OrientationUtil; import org.geometerplus.android.util.PackageUtil; public class OpenCatalogAction extends Action { diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/action/ShowBookInfoAction.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/action/ShowBookInfoAction.java index a304ba9ef..53c8f90ba 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/action/ShowBookInfoAction.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/action/ShowBookInfoAction.java @@ -30,10 +30,9 @@ import org.geometerplus.fbreader.network.NetworkTree; import org.geometerplus.android.fbreader.network.NetworkBookInfoActivity; import org.geometerplus.android.fbreader.network.NetworkLibraryActivity; +import org.geometerplus.android.util.OrientationUtil; import org.geometerplus.android.util.UIUtil; -import org.geometerplus.android.fbreader.OrientationUtil; - public class ShowBookInfoAction extends BookAction { private final ZLNetworkContext myNetworkContext; diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/auth/ActivityNetworkContext.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/auth/ActivityNetworkContext.java index 5dfa92ec5..849f91414 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/auth/ActivityNetworkContext.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/auth/ActivityNetworkContext.java @@ -30,8 +30,8 @@ import android.net.Uri; import android.text.TextUtils; import org.geometerplus.zlibrary.core.network.*; -import org.geometerplus.android.fbreader.OrientationUtil; import org.geometerplus.android.fbreader.network.NetworkLibraryActivity; +import org.geometerplus.android.util.OrientationUtil; public final class ActivityNetworkContext extends AndroidNetworkContext { private final Activity myActivity; diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/auth/WebAuthorisationScreen.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/auth/WebAuthorisationScreen.java index 6e268f88b..1aa75b14b 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/auth/WebAuthorisationScreen.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/network/auth/WebAuthorisationScreen.java @@ -36,7 +36,7 @@ import org.apache.http.impl.cookie.BasicClientCookie2; import org.geometerplus.zlibrary.core.network.ZLNetworkManager; import org.geometerplus.zlibrary.ui.android.network.SQLiteCookieDatabase; -import org.geometerplus.android.fbreader.OrientationUtil; +import org.geometerplus.android.util.OrientationUtil; public class WebAuthorisationScreen extends Activity { public static final String COMPLETE_URL_KEY = "android.fbreader.data.complete.url"; diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/preferences/ZLPreferenceActivity.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/preferences/ZLPreferenceActivity.java index 3506b90f5..f5bddb6f1 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/preferences/ZLPreferenceActivity.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/preferences/ZLPreferenceActivity.java @@ -31,7 +31,7 @@ import org.geometerplus.zlibrary.core.resources.ZLResource; import org.geometerplus.zlibrary.ui.android.network.SQLiteCookieDatabase; -import org.geometerplus.android.fbreader.OrientationUtil; +import org.geometerplus.android.util.OrientationUtil; abstract class ZLPreferenceActivity extends android.preference.PreferenceActivity { public static String SCREEN_KEY = "screen"; diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/tree/TreeActivity.java b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/tree/TreeActivity.java index 8ad2af01d..68c2e94cd 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/tree/TreeActivity.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/fbreader/tree/TreeActivity.java @@ -31,8 +31,8 @@ import org.geometerplus.android.util.UIUtil; import org.geometerplus.fbreader.tree.FBTree; -import org.geometerplus.android.fbreader.OrientationUtil; import org.geometerplus.android.fbreader.util.AndroidImageSynchronizer; +import org.geometerplus.android.util.OrientationUtil; public abstract class TreeActivity extends ListActivity { private static final String OPEN_TREE_ACTION = "android.fbreader.action.OPEN_TREE"; diff --git a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/OrientationUtil.java b/fbreader/app/src/main/java/org/geometerplus/android/util/OrientationUtil.java similarity index 97% rename from fbreader/app/src/main/java/org/geometerplus/android/fbreader/OrientationUtil.java rename to fbreader/app/src/main/java/org/geometerplus/android/util/OrientationUtil.java index 50305db99..5d76ffc8a 100644 --- a/fbreader/app/src/main/java/org/geometerplus/android/fbreader/OrientationUtil.java +++ b/fbreader/app/src/main/java/org/geometerplus/android/util/OrientationUtil.java @@ -17,7 +17,7 @@ * 02110-1301, USA. */ -package org.geometerplus.android.fbreader; +package org.geometerplus.android.util; import android.app.Activity; import android.content.Intent; 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 97f478cb8..de062070f 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 @@ -94,8 +94,28 @@ public abstract class AbstractBook extends TitledEntity { } } - public List authors() { - return (myAuthors != null) ? Collections.unmodifiableList(myAuthors) : Collections.emptyList(); + public final List authors() { + return myAuthors != null + ? Collections.unmodifiableList(myAuthors) + : Collections.emptyList(); + } + + public final String authorsString(String separator) { + final List authors = myAuthors; + if (authors == null || authors.isEmpty()) { + return null; + } + + final StringBuilder buffer = new StringBuilder(); + boolean first = true; + for (Author a : authors) { + if (!first) { + buffer.append(separator); + } + buffer.append(a.DisplayName); + first = false; + } + return buffer.toString(); } void addAuthorWithNoCheck(Author author) { @@ -227,7 +247,31 @@ public abstract class AbstractBook extends TitledEntity { } public List tags() { - return myTags != null ? Collections.unmodifiableList(myTags) : Collections.emptyList(); + return myTags != null + ? Collections.unmodifiableList(myTags) + : Collections.emptyList(); + } + + public final String tagsString(String separator) { + final List tags = myTags; + if (tags == null || tags.isEmpty()) { + return null; + } + + final HashSet tagNames = new HashSet(); + final StringBuilder buffer = new StringBuilder(); + boolean first = true; + for (Tag t : tags) { + if (!first) { + buffer.append(separator); + } + if (!tagNames.contains(t.Name)) { + tagNames.add(t.Name); + buffer.append(t.Name); + first = false; + } + } + return buffer.toString(); } void addTagWithNoCheck(Tag tag) { diff --git a/fbreader/app/src/main/java/org/geometerplus/fbreader/book/Label.java b/fbreader/app/src/main/java/org/geometerplus/fbreader/book/Label.java index 062297602..88f59bc65 100644 --- a/fbreader/app/src/main/java/org/geometerplus/fbreader/book/Label.java +++ b/fbreader/app/src/main/java/org/geometerplus/fbreader/book/Label.java @@ -22,7 +22,7 @@ package org.geometerplus.fbreader.book; import java.util.UUID; public class Label { - public final String Uid; + public final String Uid; public final String Name; public Label(String uid, String name) {