diff --git a/src/org/geometerplus/android/fbreader/network/NetworkCatalogActions.java b/src/org/geometerplus/android/fbreader/network/NetworkCatalogActions.java index 19a6215ff..59bbb476f 100644 --- a/src/org/geometerplus/android/fbreader/network/NetworkCatalogActions.java +++ b/src/org/geometerplus/android/fbreader/network/NetworkCatalogActions.java @@ -59,7 +59,7 @@ class NetworkCatalogActions extends NetworkTreeActions { if (tree instanceof NetworkCatalogRootTree) { return tree.getName(); } - return tree.getName() + " - " + ((NetworkCatalogTree) tree).Item.Link.SiteName; + return tree.getName() + " - " + ((NetworkCatalogTree) tree).Item.Link.getSiteName(); } @Override @@ -339,7 +339,7 @@ class NetworkCatalogActions extends NetworkTreeActions { /*if (!NetworkOperationRunnable::tryConnect()) { return; }*/ - final NetworkLink link = myTree.Item.Link; + final INetworkLink link = myTree.Item.Link; if (myCheckAuthentication && link.authenticationManager() != null) { NetworkAuthenticationManager mgr = link.authenticationManager(); AuthenticationStatus auth = mgr.isAuthorised(true); diff --git a/src/org/geometerplus/android/fbreader/network/NetworkDialog.java b/src/org/geometerplus/android/fbreader/network/NetworkDialog.java index bedc2ee57..1b77351ee 100644 --- a/src/org/geometerplus/android/fbreader/network/NetworkDialog.java +++ b/src/org/geometerplus/android/fbreader/network/NetworkDialog.java @@ -29,7 +29,7 @@ import android.widget.TextView; import org.geometerplus.zlibrary.core.resources.ZLResource; -import org.geometerplus.fbreader.network.NetworkLink; +import org.geometerplus.fbreader.network.INetworkLink; abstract class NetworkDialog { @@ -60,7 +60,7 @@ abstract class NetworkDialog { protected final ZLResource myResource; - protected NetworkLink myLink; + protected INetworkLink myLink; protected String myErrorMessage; protected Runnable myOnSuccessRunnable; @@ -68,11 +68,11 @@ abstract class NetworkDialog { myResource = ZLResource.resource("dialog").getResource(key); } - public static void show(Activity activity, int id, NetworkLink link, Runnable onSuccessRunnable) { + public static void show(Activity activity, int id, INetworkLink link, Runnable onSuccessRunnable) { getDialog(id).showInternal(activity, id, link, onSuccessRunnable); } - private void showInternal(Activity activity, int id, NetworkLink link, Runnable onSuccessRunnable) { + private void showInternal(Activity activity, int id, INetworkLink link, Runnable onSuccessRunnable) { myLink = link; myErrorMessage = null; myOnSuccessRunnable = onSuccessRunnable; diff --git a/src/org/geometerplus/android/fbreader/network/RefillAccountTree.java b/src/org/geometerplus/android/fbreader/network/RefillAccountTree.java index cef461ea9..bd0a2cba1 100644 --- a/src/org/geometerplus/android/fbreader/network/RefillAccountTree.java +++ b/src/org/geometerplus/android/fbreader/network/RefillAccountTree.java @@ -23,15 +23,15 @@ import org.geometerplus.zlibrary.core.image.ZLImage; import org.geometerplus.zlibrary.core.resources.ZLResource; import org.geometerplus.zlibrary.core.util.ZLBoolean3; +import org.geometerplus.fbreader.network.INetworkLink; import org.geometerplus.fbreader.network.NetworkTree; -import org.geometerplus.fbreader.network.NetworkLink; import org.geometerplus.fbreader.network.tree.NetworkCatalogTree; import org.geometerplus.fbreader.network.authentication.NetworkAuthenticationManager; class RefillAccountTree extends NetworkTree { - public final NetworkLink Link; + public final INetworkLink Link; public final ZLImage Cover; public RefillAccountTree(NetworkCatalogTree parentTree) { diff --git a/src/org/geometerplus/android/fbreader/network/SQLiteNetworkDatabase.java b/src/org/geometerplus/android/fbreader/network/SQLiteNetworkDatabase.java new file mode 100644 index 000000000..c8cfc996f --- /dev/null +++ b/src/org/geometerplus/android/fbreader/network/SQLiteNetworkDatabase.java @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2010 Geometer Plus + * + * 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.geometerplus.android.fbreader.network; + +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; + +import org.geometerplus.zlibrary.ui.android.library.ZLAndroidApplication; + +import org.geometerplus.fbreader.network.NetworkDatabase; + +public class SQLiteNetworkDatabase extends NetworkDatabase { + private final SQLiteDatabase myDatabase; + + public SQLiteNetworkDatabase() { + myDatabase = ZLAndroidApplication.Instance().openOrCreateDatabase("network.db", Context.MODE_PRIVATE, null); + } + + protected void executeAsATransaction(Runnable actions) { + myDatabase.beginTransaction(); + try { + actions.run(); + myDatabase.setTransactionSuccessful(); + } finally { + myDatabase.endTransaction(); + } + } +} diff --git a/src/org/geometerplus/fbreader/network/AbstractNetworkLink.java b/src/org/geometerplus/fbreader/network/AbstractNetworkLink.java new file mode 100644 index 000000000..5abc41c8d --- /dev/null +++ b/src/org/geometerplus/fbreader/network/AbstractNetworkLink.java @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2010 Geometer Plus + * + * 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.geometerplus.fbreader.network; + +import java.util.Map; +import java.util.TreeMap; + + +public abstract class AbstractNetworkLink implements INetworkLink { + + private final String mySiteName; + private final String myTitle; + private final String mySummary; + private final String myIcon; + private final TreeMap myLinks; + + + /** + * Creates new NetworkLink instance. + * + * @param siteName name of the corresponding website. Must be not null. + * @param title title of the corresponding library item. Must be not null. + * @param summary description of the corresponding library item. Can be null. + * @param icon string contains link's icon data/url. Can be null. + * @param links map contains URLs with their identifiers; must always contain one URL with URL_MAIN identifier + */ + public AbstractNetworkLink(String siteName, String title, String summary, String icon, Map links) { + mySiteName = siteName; + myTitle = title; + mySummary = summary; + myIcon = icon; + myLinks = new TreeMap(links); + } + + public String getSiteName() { + return mySiteName; + } + + public String getTitle() { + return myTitle; + } + + public String getSummary() { + return mySummary; + } + + public String getIcon() { + return myIcon; + } + + public String getLink(String urlKey) { + return myLinks.get(urlKey); + } +} diff --git a/src/org/geometerplus/fbreader/network/INetworkLink.java b/src/org/geometerplus/fbreader/network/INetworkLink.java new file mode 100644 index 000000000..28244251f --- /dev/null +++ b/src/org/geometerplus/fbreader/network/INetworkLink.java @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2010 Geometer Plus + * + * 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.geometerplus.fbreader.network; + +import org.geometerplus.zlibrary.core.network.ZLNetworkRequest; + +import org.geometerplus.fbreader.network.authentication.NetworkAuthenticationManager; + + +public interface INetworkLink { + + String URL_MAIN = "main"; + String URL_SEARCH = "search"; + String URL_SIGN_IN = "signIn"; + String URL_SIGN_OUT = "signOut"; + String URL_SIGN_UP = "signUp"; + String URL_REFILL_ACCOUNT = "refillAccount"; + String URL_RECOVER_PASSWORD = "recoverPassword"; + + String getSiteName(); + String getTitle(); + String getSummary(); + String getIcon(); + String getLink(String urlKey); + + + ZLNetworkRequest simpleSearchRequest(String pattern, NetworkOperationData data); + ZLNetworkRequest resume(NetworkOperationData data); + + NetworkLibraryItem libraryItem(); + NetworkAuthenticationManager authenticationManager(); + + String rewriteUrl(String url, boolean isUrlExternal); +} diff --git a/src/org/geometerplus/fbreader/network/NetworkBookItem.java b/src/org/geometerplus/fbreader/network/NetworkBookItem.java index 3e36734c8..66362a714 100644 --- a/src/org/geometerplus/fbreader/network/NetworkBookItem.java +++ b/src/org/geometerplus/fbreader/network/NetworkBookItem.java @@ -93,7 +93,7 @@ public final class NetworkBookItem extends NetworkLibraryItem { * @param cover cover url. Can be null. * @param references list of references related to this book. Must be not null. */ - public NetworkBookItem(NetworkLink link, String id, int index, + public NetworkBookItem(INetworkLink link, String id, int index, String title, String summary, /*String language, String date,*/ List authors, List tags, String seriesTitle, int indexInSeries, String cover, diff --git a/src/org/geometerplus/fbreader/network/NetworkCatalogItem.java b/src/org/geometerplus/fbreader/network/NetworkCatalogItem.java index fcc2707f0..9f46beb6a 100644 --- a/src/org/geometerplus/fbreader/network/NetworkCatalogItem.java +++ b/src/org/geometerplus/fbreader/network/NetworkCatalogItem.java @@ -52,7 +52,7 @@ public abstract class NetworkCatalogItem extends NetworkLibraryItem { * @param cover cover url. Can be null. * @param urlByType map contains URLs and their types. Must be not null. */ - public NetworkCatalogItem(NetworkLink link, String title, String summary, String cover, Map urlByType) { + public NetworkCatalogItem(INetworkLink link, String title, String summary, String cover, Map urlByType) { this(link, title, summary, cover, urlByType, VISIBLE_ALWAYS, CATALOG_OTHER); } @@ -67,7 +67,7 @@ public abstract class NetworkCatalogItem extends NetworkLibraryItem { * @param visibility value defines when this library item will be shown in the network library. * Can be one of the VISIBLE_* values. */ - public NetworkCatalogItem(NetworkLink link, String title, String summary, String cover, Map urlByType, int visibility) { + public NetworkCatalogItem(INetworkLink link, String title, String summary, String cover, Map urlByType, int visibility) { this(link, title, summary, cover, urlByType, visibility, CATALOG_OTHER); } @@ -83,7 +83,7 @@ public abstract class NetworkCatalogItem extends NetworkLibraryItem { * Can be one of the VISIBLE_* values. * @param catalogType value defines type of this catalog. Can be one of the CATALOG_* values. */ - public NetworkCatalogItem(NetworkLink link, String title, String summary, String cover, Map urlByType, int visibility, int catalogType) { + public NetworkCatalogItem(INetworkLink link, String title, String summary, String cover, Map urlByType, int visibility, int catalogType) { super(link, title, summary, cover); Visibility = visibility; CatalogType = catalogType; diff --git a/src/org/geometerplus/fbreader/network/NetworkDatabase.java b/src/org/geometerplus/fbreader/network/NetworkDatabase.java new file mode 100644 index 000000000..300ab666d --- /dev/null +++ b/src/org/geometerplus/fbreader/network/NetworkDatabase.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2010 Geometer Plus + * + * 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.geometerplus.fbreader.network; + +public abstract class NetworkDatabase { + private static NetworkDatabase ourInstance; + + public static NetworkDatabase Instance() { + return ourInstance; + } + + protected NetworkDatabase() { + ourInstance = this; + } + + protected abstract void executeAsATransaction(Runnable actions); + +} diff --git a/src/org/geometerplus/fbreader/network/NetworkLibrary.java b/src/org/geometerplus/fbreader/network/NetworkLibrary.java index 46082db31..43e50d71b 100644 --- a/src/org/geometerplus/fbreader/network/NetworkLibrary.java +++ b/src/org/geometerplus/fbreader/network/NetworkLibrary.java @@ -45,15 +45,15 @@ public class NetworkLibrary { public final ZLStringOption NetworkSearchPatternOption = new ZLStringOption("NetworkSearch", "Pattern", ""); - private final ArrayList myLinks = new ArrayList(); + private final ArrayList myLinks = new ArrayList(); private final RootTree myRootTree = new RootTree(); private boolean myUpdateChildren = true; private boolean myUpdateVisibility; - private static class LinksComparator implements Comparator { - public int compare(NetworkLink link1, NetworkLink link2) { - String title1 = link1.Title; + private static class LinksComparator implements Comparator { + public int compare(INetworkLink link1, INetworkLink link2) { + String title1 = link1.getTitle(); for (int index = 0; index < title1.length(); ++index) { final char ch = title1.charAt(index); if (ch < 128 && Character.isLetter(ch)) { @@ -61,7 +61,7 @@ public class NetworkLibrary { break; } } - String title2 = link2.Title; + String title2 = link2.getTitle(); for (int index = 0; index < title2.length(); ++index) { final char ch = title2.charAt(index); if (ch < 128 && Character.isLetter(ch)) { @@ -77,7 +77,7 @@ public class NetworkLibrary { LinkedList catalogs = readCatalogFileNames(); OPDSLinkReader reader = new OPDSLinkReader(); for (String fileName: catalogs) { - NetworkLink link = reader.readDocument(ZLResourceFile.createResourceFile("data/network/" + fileName)); + INetworkLink link = reader.readDocument(ZLResourceFile.createResourceFile("data/network/" + fileName)); if (link != null) { myLinks.add(link); } @@ -105,14 +105,10 @@ public class NetworkLibrary { return catalogs; } - public List links() { - return Collections.unmodifiableList(myLinks); - } - public String rewriteUrl(String url, boolean externalUrl) { final String host = ZLNetworkUtil.hostFromUrl(url).toLowerCase(); - for (NetworkLink link: myLinks) { - if (host.contains(link.SiteName)) { + for (INetworkLink link: myLinks) { + if (host.contains(link.getSiteName())) { url = link.rewriteUrl(url, externalUrl); } } @@ -135,10 +131,10 @@ public class NetworkLibrary { int nodeCount = 0; for (int i = 0; i < myLinks.size(); ++i) { - NetworkLink link = myLinks.get(i); - if (!link.OnOption.getValue()) { + INetworkLink link = myLinks.get(i); + /*if (!link.OnOption.getValue()) { continue; - } + }*/ boolean processed = false; while (currentNode != null || nodeIterator.hasNext()) { if (currentNode == null) { @@ -149,7 +145,7 @@ public class NetworkLibrary { ++nodeCount; continue; } - final NetworkLink nodeLink = ((NetworkCatalogTree)currentNode).Item.Link; + final INetworkLink nodeLink = ((NetworkCatalogTree)currentNode).Item.Link; if (nodeLink == link) { currentNode = null; ++nodeCount; @@ -229,14 +225,15 @@ public class NetworkLibrary { } }; - for (NetworkLink link: myLinks) { - if (link.OnOption.getValue()) { - NetworkOperationData data = new NetworkOperationData(link, synchronizedListener); - ZLNetworkRequest request = link.simpleSearchRequest(pattern, data); - if (request != null) { - dataList.add(data); - requestList.add(request); - } + for (INetworkLink link: myLinks) { + //if (link.OnOption.getValue()) { + // execute next code only if link is enabled + //} + NetworkOperationData data = new NetworkOperationData(link, synchronizedListener); + ZLNetworkRequest request = link.simpleSearchRequest(pattern, data); + if (request != null) { + dataList.add(data); + requestList.add(request); } } diff --git a/src/org/geometerplus/fbreader/network/NetworkLibraryItem.java b/src/org/geometerplus/fbreader/network/NetworkLibraryItem.java index 47dacb7ef..bc9d9bb63 100644 --- a/src/org/geometerplus/fbreader/network/NetworkLibraryItem.java +++ b/src/org/geometerplus/fbreader/network/NetworkLibraryItem.java @@ -21,7 +21,7 @@ package org.geometerplus.fbreader.network; public abstract class NetworkLibraryItem { - public final NetworkLink Link; + public final INetworkLink Link; public final String Title; public final String Summary; public final String Cover; @@ -36,7 +36,7 @@ public abstract class NetworkLibraryItem { * @param summary description of this library item. Can be null. * @param cover cover url. Can be null. */ - protected NetworkLibraryItem(NetworkLink link, String title, String summary, String cover) { + protected NetworkLibraryItem(INetworkLink link, String title, String summary, String cover) { Link = link; Title = title; Summary = summary; diff --git a/src/org/geometerplus/fbreader/network/NetworkLink.java b/src/org/geometerplus/fbreader/network/NetworkLink.java deleted file mode 100644 index bfa2e81a1..000000000 --- a/src/org/geometerplus/fbreader/network/NetworkLink.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2010 Geometer Plus - * - * 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.geometerplus.fbreader.network; - -import java.util.*; - -import org.geometerplus.zlibrary.core.options.ZLBooleanOption; -import org.geometerplus.zlibrary.core.network.ZLNetworkRequest; - -import org.geometerplus.fbreader.network.authentication.NetworkAuthenticationManager; - - -abstract public class NetworkLink { - - public static final String URL_MAIN = "main"; - public static final String URL_SEARCH = "search"; - public static final String URL_SIGN_IN = "signIn"; - public static final String URL_SIGN_OUT = "signOut"; - public static final String URL_SIGN_UP = "signUp"; - public static final String URL_REFILL_ACCOUNT = "refillAccount"; - public static final String URL_RECOVER_PASSWORD = "recoverPassword"; - - public final String SiteName; - public final String Title; - public final String Summary; - public final String Icon; - public final ZLBooleanOption OnOption; - public final TreeMap Links; - - - /** - * Creates new NetworkLink instance. - * - * @param siteName name of the corresponding website. Must be not null. - * @param title title of the corresponding library item. Must be not null. - * @param summary description of the corresponding library item. Can be null. - * @param icon string contains link's icon data/url. Can be null. - * @param links map contains URLs with their identifiers; must always contain one URL with URL_MAIN identifier - */ - public NetworkLink(String siteName, String title, String summary, String icon, Map links) { - SiteName = siteName; - Title = title; - Summary = summary; - Icon = icon; - OnOption = new ZLBooleanOption(SiteName, "on", true); - Links = new TreeMap(links); - } - - public abstract ZLNetworkRequest simpleSearchRequest(String pattern, NetworkOperationData data); - public abstract ZLNetworkRequest resume(NetworkOperationData data); - - public abstract NetworkLibraryItem libraryItem(); - public abstract NetworkAuthenticationManager authenticationManager(); - - public abstract String rewriteUrl(String url, boolean isUrlExternal); -} diff --git a/src/org/geometerplus/fbreader/network/NetworkOperationData.java b/src/org/geometerplus/fbreader/network/NetworkOperationData.java index 69f9b4e06..1c2971a64 100644 --- a/src/org/geometerplus/fbreader/network/NetworkOperationData.java +++ b/src/org/geometerplus/fbreader/network/NetworkOperationData.java @@ -29,13 +29,13 @@ public class NetworkOperationData { boolean onNewItem(NetworkLibraryItem item); } - public final NetworkLink Link; + public final INetworkLink Link; public final OnNewItemListener Listener; public String ResumeURI; private int myResumeCount; - public NetworkOperationData(NetworkLink link, OnNewItemListener listener) { + public NetworkOperationData(INetworkLink link, OnNewItemListener listener) { Link = link; Listener = listener; } diff --git a/src/org/geometerplus/fbreader/network/authentication/NetworkAuthenticationManager.java b/src/org/geometerplus/fbreader/network/authentication/NetworkAuthenticationManager.java index 0289cf4e4..109a42e35 100644 --- a/src/org/geometerplus/fbreader/network/authentication/NetworkAuthenticationManager.java +++ b/src/org/geometerplus/fbreader/network/authentication/NetworkAuthenticationManager.java @@ -26,13 +26,13 @@ import org.geometerplus.fbreader.network.*; public abstract class NetworkAuthenticationManager { - public final NetworkLink Link; + public final INetworkLink Link; public final ZLStringOption UserNameOption; public final String SSLCertificate; - public NetworkAuthenticationManager(NetworkLink link, String sslCertificate) { + public NetworkAuthenticationManager(INetworkLink link, String sslCertificate) { Link = link; - UserNameOption = new ZLStringOption(link.SiteName, "userName", ""); + UserNameOption = new ZLStringOption(link.getSiteName(), "userName", ""); SSLCertificate = sslCertificate; } diff --git a/src/org/geometerplus/fbreader/network/authentication/litres/LitResAuthenticationManager.java b/src/org/geometerplus/fbreader/network/authentication/litres/LitResAuthenticationManager.java index ac138c3f2..fcfc2651c 100644 --- a/src/org/geometerplus/fbreader/network/authentication/litres/LitResAuthenticationManager.java +++ b/src/org/geometerplus/fbreader/network/authentication/litres/LitResAuthenticationManager.java @@ -42,10 +42,10 @@ public class LitResAuthenticationManager extends NetworkAuthenticationManager { private final HashMap myPurchasedBooks = new HashMap(); - public LitResAuthenticationManager(NetworkLink link, String sslCertificate) { + public LitResAuthenticationManager(INetworkLink link, String sslCertificate) { super(link, sslCertificate); - mySidUserNameOption = new ZLStringOption(link.SiteName, "sidUserName", ""); - mySidOption = new ZLStringOption(link.SiteName, "sid", ""); + mySidUserNameOption = new ZLStringOption(link.getSiteName(), "sidUserName", ""); + mySidOption = new ZLStringOption(link.getSiteName(), "sid", ""); } @Override @@ -69,13 +69,13 @@ public class LitResAuthenticationManager extends NetworkAuthenticationManager { sid = mySidOption.getValue(); } - String url = Link.Links.get(NetworkLink.URL_SIGN_IN); + String url = Link.getLink(INetworkLink.URL_SIGN_IN); if (url == null) { return new AuthenticationStatus(NetworkErrors.errorMessage(NetworkErrors.ERROR_UNSUPPORTED_OPERATION)); } url = ZLNetworkUtil.appendParameter(url, "sid", sid); - final LitResLoginXMLReader xmlReader = new LitResLoginXMLReader(Link.SiteName); + final LitResLoginXMLReader xmlReader = new LitResLoginXMLReader(Link.getSiteName()); final String error = ZLNetworkManager.Instance().perform(new LitResNetworkRequest(url, SSLCertificate, xmlReader)); synchronized (this) { @@ -96,7 +96,7 @@ public class LitResAuthenticationManager extends NetworkAuthenticationManager { @Override public String authorise(String password) { - String url = Link.Links.get(NetworkLink.URL_SIGN_IN); + String url = Link.getLink(INetworkLink.URL_SIGN_IN); if (url == null) { return NetworkErrors.errorMessage(NetworkErrors.ERROR_UNSUPPORTED_OPERATION); } @@ -107,7 +107,7 @@ public class LitResAuthenticationManager extends NetworkAuthenticationManager { url = ZLNetworkUtil.appendParameter(url, "login", login); url = ZLNetworkUtil.appendParameter(url, "pwd", password); - final LitResLoginXMLReader xmlReader = new LitResLoginXMLReader(Link.SiteName); + final LitResLoginXMLReader xmlReader = new LitResLoginXMLReader(Link.getSiteName()); final String error = ZLNetworkManager.Instance().perform(new LitResNetworkRequest(url, SSLCertificate, xmlReader)); synchronized (this) { @@ -184,7 +184,7 @@ public class LitResAuthenticationManager extends NetworkAuthenticationManager { String query = reference.URL; query = ZLNetworkUtil.appendParameter(query, "sid", sid); - final LitResPurchaseXMLReader xmlReader = new LitResPurchaseXMLReader(Link.SiteName); + final LitResPurchaseXMLReader xmlReader = new LitResPurchaseXMLReader(Link.getSiteName()); final String error = ZLNetworkManager.Instance().perform(new LitResNetworkRequest(query, SSLCertificate, xmlReader)); synchronized (this) { @@ -203,7 +203,7 @@ public class LitResAuthenticationManager extends NetworkAuthenticationManager { return error; } if (xmlReader.BookId == null || !xmlReader.BookId.equals(book.Id)) { - return NetworkErrors.errorMessage(NetworkErrors.ERROR_SOMETHING_WRONG, Link.SiteName); + return NetworkErrors.errorMessage(NetworkErrors.ERROR_SOMETHING_WRONG, Link.getSiteName()); } } myPurchasedBooks.put(book.Id, book); @@ -225,7 +225,7 @@ public class LitResAuthenticationManager extends NetworkAuthenticationManager { if (sid.length() == 0) { return null; } - final String url = Link.Links.get(NetworkLink.URL_REFILL_ACCOUNT); + final String url = Link.getLink(INetworkLink.URL_REFILL_ACCOUNT); if (url == null) { return null; } @@ -360,7 +360,7 @@ public class LitResAuthenticationManager extends NetworkAuthenticationManager { return new LitResNetworkRequest( LitResUtil.url(Link, query), SSLCertificate, - new LitResPurchaseXMLReader(Link.SiteName) + new LitResPurchaseXMLReader(Link.getSiteName()) ); } @@ -381,7 +381,7 @@ public class LitResAuthenticationManager extends NetworkAuthenticationManager { @Override public String registerUser(String login, String password, String email) { - String url = Link.Links.get(NetworkLink.URL_SIGN_UP); + String url = Link.getLink(INetworkLink.URL_SIGN_UP); if (url == null) { return NetworkErrors.errorMessage(NetworkErrors.ERROR_UNSUPPORTED_OPERATION); } @@ -389,7 +389,7 @@ public class LitResAuthenticationManager extends NetworkAuthenticationManager { url = ZLNetworkUtil.appendParameter(url, "new_pwd1", password); url = ZLNetworkUtil.appendParameter(url, "mail", email); - final LitResRegisterUserXMLReader xmlReader = new LitResRegisterUserXMLReader(Link.SiteName); + final LitResRegisterUserXMLReader xmlReader = new LitResRegisterUserXMLReader(Link.getSiteName()); final String error = ZLNetworkManager.Instance().perform(new LitResNetworkRequest(url, SSLCertificate, xmlReader)); synchronized (this) { @@ -413,12 +413,12 @@ public class LitResAuthenticationManager extends NetworkAuthenticationManager { @Override public String recoverPassword(String email) { - String url = Link.Links.get(NetworkLink.URL_RECOVER_PASSWORD); + String url = Link.getLink(INetworkLink.URL_RECOVER_PASSWORD); if (url == null) { return NetworkErrors.errorMessage(NetworkErrors.ERROR_UNSUPPORTED_OPERATION); } url = ZLNetworkUtil.appendParameter(url, "mail", email); - final LitResPasswordRecoveryXMLReader xmlReader = new LitResPasswordRecoveryXMLReader(Link.SiteName); + final LitResPasswordRecoveryXMLReader xmlReader = new LitResPasswordRecoveryXMLReader(Link.getSiteName()); return ZLNetworkManager.Instance().perform(new LitResNetworkRequest(url, SSLCertificate, xmlReader)); } } diff --git a/src/org/geometerplus/fbreader/network/authentication/litres/LitResBookshelfItem.java b/src/org/geometerplus/fbreader/network/authentication/litres/LitResBookshelfItem.java index 59d9ad1a1..584c14dbe 100644 --- a/src/org/geometerplus/fbreader/network/authentication/litres/LitResBookshelfItem.java +++ b/src/org/geometerplus/fbreader/network/authentication/litres/LitResBookshelfItem.java @@ -31,15 +31,15 @@ public class LitResBookshelfItem extends NetworkCatalogItem { private boolean myForceReload; - public LitResBookshelfItem(NetworkLink link, String title, String summary, String cover, Map urlByType) { + public LitResBookshelfItem(INetworkLink link, String title, String summary, String cover, Map urlByType) { super(link, title, summary, cover, urlByType); } - public LitResBookshelfItem(NetworkLink link, String title, String summary, String cover, Map urlByType, int visibility) { + public LitResBookshelfItem(INetworkLink link, String title, String summary, String cover, Map urlByType, int visibility) { super(link, title, summary, cover, urlByType, visibility); } - public LitResBookshelfItem(NetworkLink link, String title, String summary, String cover, Map urlByType, int visibility, int catalogType) { + public LitResBookshelfItem(INetworkLink link, String title, String summary, String cover, Map urlByType, int visibility, int catalogType) { super(link, title, summary, cover, urlByType, visibility, catalogType); } diff --git a/src/org/geometerplus/fbreader/network/authentication/litres/LitResUtil.java b/src/org/geometerplus/fbreader/network/authentication/litres/LitResUtil.java index 23e5a7f5e..d4a761842 100644 --- a/src/org/geometerplus/fbreader/network/authentication/litres/LitResUtil.java +++ b/src/org/geometerplus/fbreader/network/authentication/litres/LitResUtil.java @@ -21,7 +21,7 @@ package org.geometerplus.fbreader.network.authentication.litres; import org.geometerplus.zlibrary.core.util.ZLNetworkUtil; -import org.geometerplus.fbreader.network.NetworkLink; +import org.geometerplus.fbreader.network.INetworkLink; class LitResUtil { @@ -37,7 +37,7 @@ class LitResUtil { return url; } - public static String url(NetworkLink link, String path) { + public static String url(INetworkLink link, String path) { return link.rewriteUrl(url(path), false); } } diff --git a/src/org/geometerplus/fbreader/network/authentication/litres/LitResXMLReader.java b/src/org/geometerplus/fbreader/network/authentication/litres/LitResXMLReader.java index a78dd7c33..31ee71872 100644 --- a/src/org/geometerplus/fbreader/network/authentication/litres/LitResXMLReader.java +++ b/src/org/geometerplus/fbreader/network/authentication/litres/LitResXMLReader.java @@ -29,7 +29,7 @@ import org.geometerplus.fbreader.network.opds.HtmlToString; class LitResXMLReader extends LitResAuthenticationXMLReader { - public final NetworkLink Link; + public final INetworkLink Link; public final List Books; private int myIndex; @@ -54,8 +54,8 @@ class LitResXMLReader extends LitResAuthenticationXMLReader { private HashMap myURLByType = new HashMap(); // TODO: remove private LinkedList myReferences = new LinkedList(); - public LitResXMLReader(NetworkLink link, List books) { - super(link.SiteName); + public LitResXMLReader(INetworkLink link, List books) { + super(link.getSiteName()); Link = link; Books = books; } diff --git a/src/org/geometerplus/fbreader/network/opds/OPDSCatalogItem.java b/src/org/geometerplus/fbreader/network/opds/OPDSCatalogItem.java index 3368964b6..6b62b63b7 100644 --- a/src/org/geometerplus/fbreader/network/opds/OPDSCatalogItem.java +++ b/src/org/geometerplus/fbreader/network/opds/OPDSCatalogItem.java @@ -29,15 +29,15 @@ import org.geometerplus.fbreader.network.*; class OPDSCatalogItem extends NetworkCatalogItem { - OPDSCatalogItem(NetworkLink link, String title, String summary, String cover, Map urlByType) { + OPDSCatalogItem(INetworkLink link, String title, String summary, String cover, Map urlByType) { super(link, title, summary, cover, urlByType); } - OPDSCatalogItem(NetworkLink link, String title, String summary, String cover, Map urlByType, int visibility) { + OPDSCatalogItem(INetworkLink link, String title, String summary, String cover, Map urlByType, int visibility) { super(link, title, summary, cover, urlByType, visibility); } - OPDSCatalogItem(NetworkLink link, String title, String summary, String cover, Map urlByType, int visibility, int catalogType) { + OPDSCatalogItem(INetworkLink link, String title, String summary, String cover, Map urlByType, int visibility, int catalogType) { super(link, title, summary, cover, urlByType, visibility, catalogType); } diff --git a/src/org/geometerplus/fbreader/network/opds/OPDSLink.java b/src/org/geometerplus/fbreader/network/opds/OPDSLink.java index a0d9d77c2..60f479308 100644 --- a/src/org/geometerplus/fbreader/network/opds/OPDSLink.java +++ b/src/org/geometerplus/fbreader/network/opds/OPDSLink.java @@ -31,7 +31,7 @@ import org.geometerplus.fbreader.network.*; import org.geometerplus.fbreader.network.authentication.NetworkAuthenticationManager; -class OPDSLink extends NetworkLink { +class OPDSLink extends AbstractNetworkLink { public interface FeedCondition { int REGULAR = 0; @@ -94,10 +94,9 @@ class OPDSLink extends NetworkLink { } private final String searchURL(String query) { - return Links.get(URL_SEARCH).replace("%s", query); + return getLink(URL_SEARCH).replace("%s", query); } - @Override public ZLNetworkRequest simpleSearchRequest(String pattern, NetworkOperationData data) { return createNetworkData( searchURL(ZLNetworkUtil.htmlEncode(pattern)), @@ -105,26 +104,22 @@ class OPDSLink extends NetworkLink { ); } - @Override public ZLNetworkRequest resume(NetworkOperationData data) { String url = data.ResumeURI; data.clear(); return createNetworkData(url, data); } - @Override public NetworkLibraryItem libraryItem() { TreeMap urlMap = new TreeMap(); - urlMap.put(NetworkCatalogItem.URL_CATALOG, Links.get(URL_MAIN)); - return new OPDSCatalogItem(this, Title, Summary, Icon, urlMap); + urlMap.put(NetworkCatalogItem.URL_CATALOG, getLink(URL_MAIN)); + return new OPDSCatalogItem(this, getTitle(), getSummary(), getIcon(), urlMap); } - @Override public NetworkAuthenticationManager authenticationManager() { return myAuthenticationManager; } - @Override public String rewriteUrl(String url, boolean isUrlExternal) { if (myUrlRewritingRules == null) { return url; diff --git a/src/org/geometerplus/fbreader/network/opds/OPDSLinkReader.java b/src/org/geometerplus/fbreader/network/opds/OPDSLinkReader.java index e713b06b1..d0a7e8c6d 100644 --- a/src/org/geometerplus/fbreader/network/opds/OPDSLinkReader.java +++ b/src/org/geometerplus/fbreader/network/opds/OPDSLinkReader.java @@ -50,8 +50,8 @@ public class OPDSLinkReader extends ZLXMLReaderAdapter { private String mySSLCertificate; - private NetworkLink link() { - if (mySiteName == null || myTitle == null || myLinks.get(NetworkLink.URL_MAIN) == null) { + private INetworkLink link() { + if (mySiteName == null || myTitle == null || myLinks.get(INetworkLink.URL_MAIN) == null) { return null; } @@ -87,7 +87,7 @@ public class OPDSLinkReader extends ZLXMLReaderAdapter { return opdsLink; } - public NetworkLink readDocument(ZLFile file) { + public INetworkLink readDocument(ZLFile file) { mySiteName = myTitle = mySummary = myIcon = /*mySearchType = */myAuthenticationType = mySSLCertificate = null; myLinks.clear(); mySearchFields.clear(); diff --git a/src/org/geometerplus/fbreader/network/tree/NetworkCatalogRootTree.java b/src/org/geometerplus/fbreader/network/tree/NetworkCatalogRootTree.java index 548332c46..06923d9f5 100644 --- a/src/org/geometerplus/fbreader/network/tree/NetworkCatalogRootTree.java +++ b/src/org/geometerplus/fbreader/network/tree/NetworkCatalogRootTree.java @@ -23,7 +23,7 @@ import org.geometerplus.fbreader.network.*; public class NetworkCatalogRootTree extends NetworkCatalogTree { - public NetworkCatalogRootTree(RootTree parent, NetworkLink link, int position) { + public NetworkCatalogRootTree(RootTree parent, INetworkLink link, int position) { super(parent, (NetworkCatalogItem) link.libraryItem(), position); } }