From 969289132949861cc6229625d1723479554727ef Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Sat, 3 Oct 2015 20:25:50 +0100 Subject: [PATCH] org.fbreader.util.Pair class --- .../src/main/java/org/fbreader/util/Pair.java | 34 +++++++++++++++++++ .../android/fbreader/tree/TreeActivity.java | 12 ++++++- .../fbreader/library/FavoritesTree.java | 6 ++-- .../fbreader/library/FileFirstLevelTree.java | 6 ++-- .../fbreader/library/FileTree.java | 6 ++-- .../fbreader/library/FirstLevelTree.java | 6 ++-- .../fbreader/library/SearchResultsTree.java | 6 ++-- .../fbreader/library/SyncLabelTree.java | 6 ++-- .../fbreader/library/SyncTree.java | 6 ++-- .../network/tree/NetworkCatalogRootTree.java | 6 ++-- .../network/tree/NetworkCatalogTree.java | 6 ++-- .../network/tree/SearchCatalogTree.java | 6 ++-- .../geometerplus/fbreader/tree/FBTree.java | 6 ++-- 13 files changed, 89 insertions(+), 23 deletions(-) create mode 100644 fbreader/app/src/main/java/org/fbreader/util/Pair.java diff --git a/fbreader/app/src/main/java/org/fbreader/util/Pair.java b/fbreader/app/src/main/java/org/fbreader/util/Pair.java new file mode 100644 index 000000000..9a3e89106 --- /dev/null +++ b/fbreader/app/src/main/java/org/fbreader/util/Pair.java @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2007-2015 FBReader.ORG Limited + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA. + */ + +package org.fbreader.util; + +public final class Pair { + public T1 First; + public T2 Second; + + public Pair(T1 first, T2 second) { + First = first; + Second = second; + } + + public Pair() { + this(null, null); + } +} 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 28851326d..a8d13d1e1 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 @@ -21,6 +21,8 @@ package org.geometerplus.android.fbreader.tree; import java.util.*; +import org.fbreader.util.Pair; + import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; @@ -165,6 +167,14 @@ public abstract class TreeActivity extends ListActivity { } } + private void setTitleAndSubtitle(Pair pair) { + if (pair.Second != null) { + setTitle(pair.First + " - " + pair.Second); + } else { + setTitle(pair.First); + } + } + protected void init(Intent intent) { final FBTree.Key key = (FBTree.Key)intent.getSerializableExtra(TREE_KEY_KEY); final FBTree.Key selectedKey = (FBTree.Key)intent.getSerializableExtra(SELECTED_TREE_KEY_KEY); @@ -174,7 +184,7 @@ public abstract class TreeActivity extends ListActivity { myCurrentKey = myCurrentTree.getUniqueKey(); final TreeAdapter adapter = getTreeAdapter(); adapter.replaceAll(myCurrentTree.subtrees(), false); - setTitle(myCurrentTree.getTreeTitle()); + setTitleAndSubtitle(myCurrentTree.getTreeTitle()); final FBTree selectedTree = selectedKey != null ? getTreeByKey(selectedKey) : adapter.getFirstSelectedItem(); final int index = adapter.getIndex(selectedTree); diff --git a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FavoritesTree.java b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FavoritesTree.java index 1258ef0cc..c85dff178 100644 --- a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FavoritesTree.java +++ b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FavoritesTree.java @@ -19,6 +19,8 @@ package org.geometerplus.fbreader.library; +import org.fbreader.util.Pair; + import org.geometerplus.zlibrary.core.resources.ZLResource; import org.geometerplus.fbreader.book.*; @@ -37,8 +39,8 @@ public class FavoritesTree extends FilteredTree { } @Override - public String getTreeTitle() { - return getSummary(); + public Pair getTreeTitle() { + return new Pair(getSummary(), null); } @Override diff --git a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FileFirstLevelTree.java b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FileFirstLevelTree.java index ab313a30a..025418b62 100644 --- a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FileFirstLevelTree.java +++ b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FileFirstLevelTree.java @@ -21,6 +21,8 @@ package org.geometerplus.fbreader.library; import java.util.List; +import org.fbreader.util.Pair; + import org.geometerplus.zlibrary.core.filesystem.ZLFile; import org.geometerplus.zlibrary.core.resources.ZLResource; @@ -32,8 +34,8 @@ public class FileFirstLevelTree extends FirstLevelTree { } @Override - public String getTreeTitle() { - return getName(); + public Pair getTreeTitle() { + return new Pair(getName(), null); } @Override diff --git a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FileTree.java b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FileTree.java index 895f2dd85..58dd21147 100644 --- a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FileTree.java +++ b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FileTree.java @@ -21,6 +21,8 @@ package org.geometerplus.fbreader.library; import java.util.*; +import org.fbreader.util.Pair; + import org.geometerplus.zlibrary.core.filesystem.ZLFile; import org.geometerplus.zlibrary.core.image.ZLImage; @@ -55,8 +57,8 @@ public class FileTree extends LibraryTree { } @Override - public String getTreeTitle() { - return myFile.getPath(); + public Pair getTreeTitle() { + return new Pair(myFile.getPath(), null); } @Override diff --git a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FirstLevelTree.java b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FirstLevelTree.java index ccd2f6a73..0f95fc466 100644 --- a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FirstLevelTree.java +++ b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/FirstLevelTree.java @@ -19,6 +19,8 @@ package org.geometerplus.fbreader.library; +import org.fbreader.util.Pair; + import org.geometerplus.zlibrary.core.resources.ZLResource; abstract class FirstLevelTree extends LibraryTree { @@ -43,8 +45,8 @@ abstract class FirstLevelTree extends LibraryTree { } @Override - public String getTreeTitle() { - return getSummary(); + public Pair getTreeTitle() { + return new Pair(getSummary(), null); } @Override diff --git a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/SearchResultsTree.java b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/SearchResultsTree.java index 5232a021a..5df62cc7a 100644 --- a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/SearchResultsTree.java +++ b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/SearchResultsTree.java @@ -19,6 +19,8 @@ package org.geometerplus.fbreader.library; +import org.fbreader.util.Pair; + import org.geometerplus.zlibrary.core.resources.ZLResource; import org.geometerplus.fbreader.book.*; @@ -41,8 +43,8 @@ public class SearchResultsTree extends FilteredTree { } @Override - public String getTreeTitle() { - return getSummary(); + public Pair getTreeTitle() { + return new Pair(getSummary(), null); } @Override diff --git a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/SyncLabelTree.java b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/SyncLabelTree.java index 72d891219..5d55e9e18 100644 --- a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/SyncLabelTree.java +++ b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/SyncLabelTree.java @@ -19,6 +19,8 @@ package org.geometerplus.fbreader.library; +import org.fbreader.util.Pair; + import org.geometerplus.zlibrary.core.resources.ZLResource; import org.geometerplus.fbreader.book.Book; @@ -40,8 +42,8 @@ public class SyncLabelTree extends FilteredTree { } @Override - public String getTreeTitle() { - return getSummary(); + public Pair getTreeTitle() { + return new Pair(getSummary(), null); } @Override diff --git a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/SyncTree.java b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/SyncTree.java index 294c1bfef..d06c2aecd 100644 --- a/fbreader/app/src/main/java/org/geometerplus/fbreader/library/SyncTree.java +++ b/fbreader/app/src/main/java/org/geometerplus/fbreader/library/SyncTree.java @@ -22,6 +22,8 @@ package org.geometerplus.fbreader.library; import java.util.Arrays; import java.util.List; +import org.fbreader.util.Pair; + import org.geometerplus.zlibrary.core.resources.ZLResource; import org.geometerplus.fbreader.book.Book; @@ -39,8 +41,8 @@ public class SyncTree extends FirstLevelTree { } @Override - public String getTreeTitle() { - return getName(); + public Pair getTreeTitle() { + return new Pair(getName(), null); } @Override diff --git a/fbreader/app/src/main/java/org/geometerplus/fbreader/network/tree/NetworkCatalogRootTree.java b/fbreader/app/src/main/java/org/geometerplus/fbreader/network/tree/NetworkCatalogRootTree.java index 47c777086..1c8a92822 100644 --- a/fbreader/app/src/main/java/org/geometerplus/fbreader/network/tree/NetworkCatalogRootTree.java +++ b/fbreader/app/src/main/java/org/geometerplus/fbreader/network/tree/NetworkCatalogRootTree.java @@ -19,6 +19,8 @@ package org.geometerplus.fbreader.network.tree; +import org.fbreader.util.Pair; + import org.geometerplus.fbreader.tree.FBTree; import org.geometerplus.fbreader.network.*; @@ -32,8 +34,8 @@ public class NetworkCatalogRootTree extends NetworkCatalogTree { } @Override - public String getTreeTitle() { - return getName(); + public Pair getTreeTitle() { + return new Pair(getName(), null); } @Override diff --git a/fbreader/app/src/main/java/org/geometerplus/fbreader/network/tree/NetworkCatalogTree.java b/fbreader/app/src/main/java/org/geometerplus/fbreader/network/tree/NetworkCatalogTree.java index b056729fb..f51fe1a9d 100644 --- a/fbreader/app/src/main/java/org/geometerplus/fbreader/network/tree/NetworkCatalogTree.java +++ b/fbreader/app/src/main/java/org/geometerplus/fbreader/network/tree/NetworkCatalogTree.java @@ -21,6 +21,8 @@ package org.geometerplus.fbreader.network.tree; import java.util.*; +import org.fbreader.util.Pair; + import org.geometerplus.zlibrary.core.image.ZLImage; import org.geometerplus.zlibrary.core.network.QuietNetworkContext; import org.geometerplus.zlibrary.core.network.ZLNetworkContext; @@ -101,9 +103,9 @@ public class NetworkCatalogTree extends NetworkTree { } @Override - public String getTreeTitle() { + public Pair getTreeTitle() { final INetworkLink link = getLink(); - return link != null ? getName() + " - " + link.getTitle() : getName(); + return new Pair(getName(), link != null ? link.getTitle() : null); } @Override diff --git a/fbreader/app/src/main/java/org/geometerplus/fbreader/network/tree/SearchCatalogTree.java b/fbreader/app/src/main/java/org/geometerplus/fbreader/network/tree/SearchCatalogTree.java index eff18dfc9..60701beb1 100644 --- a/fbreader/app/src/main/java/org/geometerplus/fbreader/network/tree/SearchCatalogTree.java +++ b/fbreader/app/src/main/java/org/geometerplus/fbreader/network/tree/SearchCatalogTree.java @@ -19,6 +19,8 @@ package org.geometerplus.fbreader.network.tree; +import org.fbreader.util.Pair; + import org.geometerplus.zlibrary.core.image.ZLImage; import org.geometerplus.zlibrary.core.network.ZLNetworkContext; import org.geometerplus.zlibrary.core.util.MimeType; @@ -61,8 +63,8 @@ public class SearchCatalogTree extends NetworkCatalogTree { } @Override - public String getTreeTitle() { - return getSummary(); + public Pair getTreeTitle() { + return new Pair(getSummary(), null); } @Override diff --git a/fbreader/app/src/main/java/org/geometerplus/fbreader/tree/FBTree.java b/fbreader/app/src/main/java/org/geometerplus/fbreader/tree/FBTree.java index 3b72b411f..6f6e2f4d2 100644 --- a/fbreader/app/src/main/java/org/geometerplus/fbreader/tree/FBTree.java +++ b/fbreader/app/src/main/java/org/geometerplus/fbreader/tree/FBTree.java @@ -21,6 +21,8 @@ package org.geometerplus.fbreader.tree; import java.io.Serializable; +import org.fbreader.util.Pair; + import org.geometerplus.zlibrary.core.image.ZLImage; import org.geometerplus.zlibrary.core.tree.ZLTree; import org.geometerplus.zlibrary.core.util.MiscUtil; @@ -114,8 +116,8 @@ public abstract class FBTree extends ZLTree implements Comparable getTreeTitle() { + return new Pair(getName(), null); } protected String getSortKey() {