diff --git a/assets/resources/application/cs.xml b/assets/resources/application/cs.xml index c2c2d13f9..0eb67a823 100644 --- a/assets/resources/application/cs.xml +++ b/assets/resources/application/cs.xml @@ -78,6 +78,8 @@ + + diff --git a/assets/resources/application/de.xml b/assets/resources/application/de.xml index a40edf8c3..027a657d6 100644 --- a/assets/resources/application/de.xml +++ b/assets/resources/application/de.xml @@ -79,6 +79,8 @@ + + diff --git a/assets/resources/application/en.xml b/assets/resources/application/en.xml index 6e76d24ae..e4cafc757 100644 --- a/assets/resources/application/en.xml +++ b/assets/resources/application/en.xml @@ -77,6 +77,8 @@ + + diff --git a/assets/resources/application/fr.xml b/assets/resources/application/fr.xml index 95fa0ce78..df2ba94b5 100644 --- a/assets/resources/application/fr.xml +++ b/assets/resources/application/fr.xml @@ -81,6 +81,8 @@ + + diff --git a/assets/resources/application/gl.xml b/assets/resources/application/gl.xml index 1baf2f605..97e5e7a1f 100644 --- a/assets/resources/application/gl.xml +++ b/assets/resources/application/gl.xml @@ -78,6 +78,8 @@ + + diff --git a/assets/resources/application/hu.xml b/assets/resources/application/hu.xml index 9243bb728..d437c9611 100644 --- a/assets/resources/application/hu.xml +++ b/assets/resources/application/hu.xml @@ -78,6 +78,8 @@ + + diff --git a/assets/resources/application/it.xml b/assets/resources/application/it.xml index cb664f978..6925aea3a 100644 --- a/assets/resources/application/it.xml +++ b/assets/resources/application/it.xml @@ -78,6 +78,8 @@ + + diff --git a/assets/resources/application/nl.xml b/assets/resources/application/nl.xml index 83eb27f48..476d6b91d 100644 --- a/assets/resources/application/nl.xml +++ b/assets/resources/application/nl.xml @@ -78,6 +78,8 @@ + + diff --git a/assets/resources/application/ru.xml b/assets/resources/application/ru.xml index 6c31803c2..302f6300a 100644 --- a/assets/resources/application/ru.xml +++ b/assets/resources/application/ru.xml @@ -77,8 +77,10 @@ - - + + + + diff --git a/assets/resources/application/th.xml b/assets/resources/application/th.xml index fcb07a137..f6ace5204 100644 --- a/assets/resources/application/th.xml +++ b/assets/resources/application/th.xml @@ -78,6 +78,8 @@ + + diff --git a/assets/resources/application/uk.xml b/assets/resources/application/uk.xml index ab0643a90..ea1bf9e94 100644 --- a/assets/resources/application/uk.xml +++ b/assets/resources/application/uk.xml @@ -78,6 +78,8 @@ + + diff --git a/assets/resources/application/vi.xml b/assets/resources/application/vi.xml index 6237ce480..297ec9b36 100644 --- a/assets/resources/application/vi.xml +++ b/assets/resources/application/vi.xml @@ -78,6 +78,8 @@ + + diff --git a/assets/resources/application/zh.xml b/assets/resources/application/zh.xml index f78bef5e9..41a322754 100644 --- a/assets/resources/application/zh.xml +++ b/assets/resources/application/zh.xml @@ -78,6 +78,8 @@ + + diff --git a/src/org/geometerplus/android/fbreader/network/TopupActions.java b/src/org/geometerplus/android/fbreader/network/TopupActions.java index 6cd29a950..b6cb41e5c 100644 --- a/src/org/geometerplus/android/fbreader/network/TopupActions.java +++ b/src/org/geometerplus/android/fbreader/network/TopupActions.java @@ -33,6 +33,7 @@ class TopupActions extends NetworkTreeActions { public static final int TOPUP_VIA_SMS_ITEM_ID = 0; public static final int TOPUP_VIA_BROWSER_ITEM_ID = 1; public static final int TOPUP_VIA_CREDIT_CARD_ITEM_ID = 2; + public static final int TOPUP_VIA_SELF_SERVICE_ITEM_ID = 3; @Override public boolean canHandleTree(NetworkTree tree) { @@ -47,12 +48,15 @@ class TopupActions extends NetworkTreeActions { void buildContextMenu(Activity activity, ContextMenu menu, INetworkLink link) { menu.setHeaderTitle(getTitleValue("topupTitle")); - if (Util.isCreditCardTopupSupported(activity, link)) { + if (Util.isTopupSupported(activity, link, Util.CREDIT_CARD_TOPUP_ACTION)) { addMenuItem(menu, TOPUP_VIA_CREDIT_CARD_ITEM_ID, "topupViaCreditCard"); } - if (Util.isSmsTopupSupported(activity, link)) { + if (Util.isTopupSupported(activity, link, Util.SMS_TOPUP_ACTION)) { addMenuItem(menu, TOPUP_VIA_SMS_ITEM_ID, "topupViaSms"); } + if (Util.isTopupSupported(activity, link, Util.SELF_SERVICE_KIOSK_TOPUP_ACTION)) { + addMenuItem(menu, TOPUP_VIA_SELF_SERVICE_ITEM_ID, "topupViaSelfServiceKiosk"); + } if (Util.isBrowserTopupSupported(activity, link)) { addMenuItem(menu, TOPUP_VIA_BROWSER_ITEM_ID, "topupViaBrowser"); } @@ -63,13 +67,15 @@ class TopupActions extends NetworkTreeActions { return getDefaultActionCode(activity, ((TopUpTree)tree).Item.Link); } private int getDefaultActionCode(Activity activity, INetworkLink link) { - final boolean sms = Util.isSmsTopupSupported(activity, link); final boolean browser = Util.isBrowserTopupSupported(activity, link); - final boolean creditCard = Util.isCreditCardTopupSupported(activity, link); + final boolean sms = Util.isTopupSupported(activity, link, Util.SMS_TOPUP_ACTION); + final boolean creditCard = Util.isTopupSupported(activity, link, Util.CREDIT_CARD_TOPUP_ACTION); + final boolean selfService = Util.isTopupSupported(activity, link, Util.SELF_SERVICE_KIOSK_TOPUP_ACTION); final int count = (sms ? 1 : 0) + (browser ? 1 : 0) + - (creditCard ? 1 : 0); + (creditCard ? 1 : 0) + + (selfService ? 1 : 0); if (count > 1) { return TREE_SHOW_CONTEXT_MENU; @@ -77,6 +83,8 @@ class TopupActions extends NetworkTreeActions { return TOPUP_VIA_SMS_ITEM_ID; } else if (creditCard) { return TOPUP_VIA_CREDIT_CARD_ITEM_ID; + } else if (selfService) { + return TOPUP_VIA_SELF_SERVICE_ITEM_ID; } else /* if (browser) */ { return TOPUP_VIA_BROWSER_ITEM_ID; } @@ -107,13 +115,16 @@ class TopupActions extends NetworkTreeActions { Runnable topupRunnable = null; switch (actionCode) { case TOPUP_VIA_SMS_ITEM_ID: - topupRunnable = smsTopupRunnable(activity, link); + topupRunnable = topupRunnable(activity, link, Util.SMS_TOPUP_ACTION); break; case TOPUP_VIA_BROWSER_ITEM_ID: topupRunnable = browserTopupRunnable(activity, link); break; case TOPUP_VIA_CREDIT_CARD_ITEM_ID: - topupRunnable = creditCardTopupRunnable(activity, link); + topupRunnable = topupRunnable(activity, link, Util.CREDIT_CARD_TOPUP_ACTION); + break; + case TOPUP_VIA_SELF_SERVICE_ITEM_ID: + topupRunnable = topupRunnable(activity, link, Util.SELF_SERVICE_KIOSK_TOPUP_ACTION); break; } @@ -135,18 +146,10 @@ class TopupActions extends NetworkTreeActions { }; } - private static Runnable smsTopupRunnable(final Activity activity, final INetworkLink link) { + private static Runnable topupRunnable(final Activity activity, final INetworkLink link, final String action) { return new Runnable() { public void run() { - Util.runSmsTopupDialog(activity, link); - } - }; - } - - private static Runnable creditCardTopupRunnable(final Activity activity, final INetworkLink link) { - return new Runnable() { - public void run() { - Util.runCreditCardTopupDialog(activity, link); + Util.runTopupDialog(activity, link, action); } }; } diff --git a/src/org/geometerplus/android/fbreader/network/Util.java b/src/org/geometerplus/android/fbreader/network/Util.java index 60f243ce3..405190475 100644 --- a/src/org/geometerplus/android/fbreader/network/Util.java +++ b/src/org/geometerplus/android/fbreader/network/Util.java @@ -38,10 +38,12 @@ import org.geometerplus.android.util.PackageUtil; abstract class Util implements UserRegistrationConstants { private static final String REGISTRATION_ACTION = "android.fbreader.action.NETWORK_LIBRARY_REGISTER"; - private static final String SMS_TOPUP_ACTION = + static final String SMS_TOPUP_ACTION = "android.fbreader.action.NETWORK_LIBRARY_SMS_REFILLING"; - private static final String CREDIT_CARD_TOPUP_ACTION = + static final String CREDIT_CARD_TOPUP_ACTION = "android.fbreader.action.NETWORK_LIBRARY_CREDIT_CARD_TOPUP"; + static final String SELF_SERVICE_KIOSK_TOPUP_ACTION = + "android.fbreader.action.NETWORK_LIBRARY_SELF_SERVICE_KIOSK_TOPUP"; private static boolean testService(Activity activity, String action, String url) { return url != null && PackageUtil.canBeStarted(activity, new Intent(action, Uri.parse(url)), true); @@ -88,35 +90,20 @@ abstract class Util implements UserRegistrationConstants { static boolean isTopupSupported(Activity activity, INetworkLink link) { return isBrowserTopupSupported(activity, link) || - isCreditCardTopupSupported(activity, link) || - isSmsTopupSupported(activity, link); + isTopupSupported(activity, link, SMS_TOPUP_ACTION) || + isTopupSupported(activity, link, CREDIT_CARD_TOPUP_ACTION) || + isTopupSupported(activity, link, SELF_SERVICE_KIOSK_TOPUP_ACTION); } - static boolean isSmsTopupSupported(Activity activity, INetworkLink link) { + static boolean isTopupSupported(Activity activity, INetworkLink link, String action) { return testService( activity, - SMS_TOPUP_ACTION, + action, link.getUrlInfo(INetworkLink.URL_MAIN).URL ); } - static boolean isCreditCardTopupSupported(Activity activity, INetworkLink link) { - return testService( - activity, - CREDIT_CARD_TOPUP_ACTION, - link.getUrlInfo(INetworkLink.URL_MAIN).URL - ); - } - - static void runSmsTopupDialog(Activity activity, INetworkLink link) { - runTopupDialog(activity, link, SMS_TOPUP_ACTION); - } - - static void runCreditCardTopupDialog(Activity activity, INetworkLink link) { - runTopupDialog(activity, link, CREDIT_CARD_TOPUP_ACTION); - } - - private static void runTopupDialog(Activity activity, INetworkLink link, String action) { + static void runTopupDialog(Activity activity, INetworkLink link, String action) { try { final Intent intent = new Intent( action,