diff --git a/src/org/geometerplus/android/fbreader/network/NetworkCatalogActions.java b/src/org/geometerplus/android/fbreader/network/NetworkCatalogActions.java index f236441f3..3760efea2 100644 --- a/src/org/geometerplus/android/fbreader/network/NetworkCatalogActions.java +++ b/src/org/geometerplus/android/fbreader/network/NetworkCatalogActions.java @@ -88,7 +88,7 @@ class NetworkCatalogActions extends NetworkTreeActions { if (mgr != null) { if (mgr.mayBeAuthorised(false)) { addMenuItem(menu, SIGNOUT_ITEM_ID, "signOut", mgr.currentUserName()); - if (Util.isTopupSupported(activity, item.Link)) { + if (Util.isTopupSupported(item.Link)) { final String account = mgr.currentAccount(); if (account != null) { addMenuItem(menu, TOPUP_ITEM_ID, "topup", account); @@ -177,7 +177,7 @@ class NetworkCatalogActions extends NetworkTreeActions { userName = mgr.currentUserName(); signOut = true; account = mgr.currentAccount(); - if (account != null && Util.isTopupSupported(activity, item.Link)) { + if (account != null && Util.isTopupSupported(item.Link)) { topup = true; } } else { diff --git a/src/org/geometerplus/android/fbreader/network/NetworkLibraryActivity.java b/src/org/geometerplus/android/fbreader/network/NetworkLibraryActivity.java index 118e616b5..9216ee4b7 100644 --- a/src/org/geometerplus/android/fbreader/network/NetworkLibraryActivity.java +++ b/src/org/geometerplus/android/fbreader/network/NetworkLibraryActivity.java @@ -218,7 +218,7 @@ public class NetworkLibraryActivity extends BaseActivity implements NetworkView. } } else if (getCurrentTree() instanceof NetworkCatalogTree) { final INetworkLink link = ((NetworkCatalogTree)getCurrentTree()).Item.Link; - if (Util.isTopupSupported(this, link)) { + if (Util.isTopupSupported(link)) { final TopupActions actions = NetworkView.Instance().getTopupActions(); if (actions != null) { actions.buildContextMenu(this, menu, link); @@ -242,7 +242,7 @@ public class NetworkLibraryActivity extends BaseActivity implements NetworkView. } } else if (getCurrentTree() instanceof NetworkCatalogTree) { final INetworkLink link = ((NetworkCatalogTree)getCurrentTree()).Item.Link; - if (Util.isTopupSupported(this, link)) { + if (Util.isTopupSupported(link)) { final TopupActions actions = NetworkView.Instance().getTopupActions(); if (actions != null && actions.runAction(this, link, item.getItemId())) { return true; diff --git a/src/org/geometerplus/android/fbreader/network/TopupActions.java b/src/org/geometerplus/android/fbreader/network/TopupActions.java index e20c301be..6fda75849 100644 --- a/src/org/geometerplus/android/fbreader/network/TopupActions.java +++ b/src/org/geometerplus/android/fbreader/network/TopupActions.java @@ -20,7 +20,6 @@ package org.geometerplus.android.fbreader.network; import java.util.List; -import java.util.ArrayList; import android.app.Activity; import android.view.View; diff --git a/src/org/geometerplus/android/fbreader/network/Util.java b/src/org/geometerplus/android/fbreader/network/Util.java index e0d1d56df..a96c5d837 100644 --- a/src/org/geometerplus/android/fbreader/network/Util.java +++ b/src/org/geometerplus/android/fbreader/network/Util.java @@ -39,6 +39,8 @@ import org.geometerplus.fbreader.network.urlInfo.UrlInfo; import org.geometerplus.android.util.UIUtil; import org.geometerplus.android.util.PackageUtil; +import org.geometerplus.android.fbreader.api.PluginApi; + abstract class Util implements UserRegistrationConstants { private static final String REGISTRATION_ACTION = "android.fbreader.action.NETWORK_LIBRARY_REGISTER"; @@ -194,24 +196,17 @@ abstract class Util implements UserRegistrationConstants { } } - static boolean isTopupSupported(Activity activity, INetworkLink link) { - return - isTopupSupported(activity, link, BROWSER_ACTION_ID) || - isTopupSupported(activity, link, SMS_ACTION_ID) || - isTopupSupported(activity, link, CREDIT_CARD_ACTION_ID) || - isTopupSupported(activity, link, SELF_SERVICE_ACTION_ID); + static boolean isTopupSupported(INetworkLink link) { + final List infos = + NetworkView.Instance().TopupActionInfos.get(link.getUrlInfo(UrlInfo.Type.Catalog).Url); + return infos != null && infos.size() > 0; } static boolean isTopupSupported(Activity activity, INetworkLink link, String actionId) { if (BROWSER_ACTION_ID.equals(actionId)) { return link.getUrl(UrlInfo.Type.TopUp) != null; } else { - final String url = link.getUrl(UrlInfo.Type.Catalog) + "/" + actionId; - return testService( - activity, - TOPUP_ACTION, - url - ); + return false; } }