mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-06 12:00:17 +02:00
SMS account refilling (in progress); updated TODO
This commit is contained in:
parent
98470c95ae
commit
329a4eb0c1
16 changed files with 118 additions and 102 deletions
42
TODO.plugins
42
TODO.plugins
|
@ -1,20 +1,28 @@
|
||||||
LITRES:
|
LITRES:
|
||||||
|
|
||||||
* Проверить, что происходит в отсутствие плагина
|
0.99:
|
||||||
ТОЧКИ ВХОДА:
|
|
||||||
вход в litres-catalog
|
|
||||||
sign up в меню
|
|
||||||
sign up в диалоге авторизации
|
|
||||||
|
|
||||||
DONE Доделать регистрацию
|
|
||||||
* Авторегистрация
|
* Авторегистрация
|
||||||
* Пополнение счета через sms
|
* Пополнение счета через sms
|
||||||
* Автопокупка
|
* Автопокупка
|
||||||
|
* 'Refill account' item should be visible iff user is logged in
|
||||||
|
* What happens if user has no enough money to buy a book?
|
||||||
|
* SMS account refilling
|
||||||
|
* не задавать вопрос об установке плагина слишком часто (<= раза в неделю?)
|
||||||
|
* возможность ручной установки плагина
|
||||||
|
* если загрузка из маркета невозможна (запуск маркета не состоялся) -- пытаться ставить с data.fbreader.org
|
||||||
|
* добавить permission на установку пакетов?
|
||||||
|
* что делать, если оттуда нельзя поставить, потому что запрещена установка из "Unknown sources"?
|
||||||
|
* как дать возможность ставить из других магазинов?
|
||||||
|
* plugin для TTS
|
||||||
|
|
||||||
0.8.0:
|
After 0.99:
|
||||||
|
* 'My Basket' item
|
||||||
|
* 'Order all the books in basket' action
|
||||||
|
* Auto-calculation of SMS set for given sum
|
||||||
|
|
||||||
|
FLOWS:
|
||||||
|
|
||||||
DONE litres: перенести диалог регистрации в плагин
|
|
||||||
убрать GET_ACCOUNTS из основной версии
|
|
||||||
** litres: механизм авторегистрации
|
** litres: механизм авторегистрации
|
||||||
пытаемся войти
|
пытаемся войти
|
||||||
если вошли -- ОК
|
если вошли -- ОК
|
||||||
|
@ -22,7 +30,6 @@ DONE litres: перенести диалог регистрации в плаг
|
||||||
"использовать другой e-mail или выслать пароль на этот?"
|
"использовать другой e-mail или выслать пароль на этот?"
|
||||||
если нет такого пользователя -- пытаемся создать
|
если нет такого пользователя -- пытаемся создать
|
||||||
если e-address already in use -- ?
|
если e-address already in use -- ?
|
||||||
** litres: отправка sms
|
|
||||||
** litres: механизм покупки книги
|
** litres: механизм покупки книги
|
||||||
если уже logged in -- покупаем
|
если уже logged in -- покупаем
|
||||||
если не хватает денег -- говорим, что надо пополнить счет и предлалагаем варианты:
|
если не хватает денег -- говорим, что надо пополнить счет и предлалагаем варианты:
|
||||||
|
@ -44,18 +51,3 @@ DONE litres: перенести диалог регистрации в плаг
|
||||||
если e-address already in use -- ?
|
если e-address already in use -- ?
|
||||||
ручная регистрация
|
ручная регистрация
|
||||||
cancel
|
cancel
|
||||||
|
|
||||||
|
|
||||||
** вызов плагина из программы (с предварительной проверкой, установлен ли)
|
|
||||||
|
|
||||||
** вопрос об установке плагина (диалог)
|
|
||||||
** не задавать вопрос слишком часто (<= раза в неделю?)
|
|
||||||
|
|
||||||
** если загрузка из маркета невозможна (запуск маркета не состоялся) -- пытаться ставить с data.fbreader.org
|
|
||||||
** добавить permission на установку пакетов?
|
|
||||||
** что делать, если оттуда нельзя поставить, потому что запрещена установка из "Unknown sources"?
|
|
||||||
** как дать возможность ставить из других магазинов?
|
|
||||||
** проверка номера версии и запрос апдейта, если надо
|
|
||||||
** plugin для TTS
|
|
||||||
|
|
||||||
DONE сделать другую иконку для fbreader_plugin
|
|
||||||
|
|
|
@ -7,13 +7,23 @@
|
||||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||||
<uses-permission android:name="android.permission.SEND_SMS" />
|
<uses-permission android:name="android.permission.SEND_SMS" />
|
||||||
<application android:label="FBReader LitRes plugin" android:icon="@drawable/fbreader_plugin">
|
<application android:label="FBReader LitRes plugin" android:icon="@drawable/fbreader_plugin">
|
||||||
<activity android:name=".TestActivity">
|
<activity android:name=".TestActivity" android:theme="@android:style/Theme.NoDisplay">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<action android:name="android.fbreader.action.TEST" />
|
<action android:name="android.fbreader.action.TEST" />
|
||||||
<data android:scheme="http" android:host="data.fbreader.org" android:path="/packages/org.geometerplus.fbreader.plugin.network.litres.apk" />
|
<data android:scheme="http" android:host="data.fbreader.org" android:path="/packages/org.geometerplus.fbreader.plugin.network.litres.apk" />
|
||||||
<data android:scheme="http" android:host="data.fbreader.org" android:path="/packages/org.geometerplus.fbreader.plugin.network.litres.apk_1" />
|
<data android:scheme="http" android:host="data.fbreader.org" android:path="/packages/org.geometerplus.fbreader.plugin.network.litres.apk_1" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<action android:name="android.fbreader.action.NETWORK_LIBRARY_REGISTER_TEST" />
|
||||||
|
<data android:scheme="https" android:host="robot.litres.ru" />
|
||||||
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<action android:name="android.fbreader.action.NETWORK_LIBRARY_SMS_REFILLING_TEST" />
|
||||||
|
<data android:scheme="http" android:host="data.fbreader.org" android:path="/catalogs/litres/index.php"/>
|
||||||
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity android:name=".UserRegistrationActivity" android:configChanges="orientation|keyboardHidden" android:theme="@android:style/Theme.Dialog">
|
<activity android:name=".UserRegistrationActivity" android:configChanges="orientation|keyboardHidden" android:theme="@android:style/Theme.Dialog">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
|
|
@ -90,10 +90,6 @@ public class UserRegistrationActivity extends Activity implements UserRegistrati
|
||||||
setViewTextFromResource(R.id.user_registration_confirm_password_text, "confirmPassword");
|
setViewTextFromResource(R.id.user_registration_confirm_password_text, "confirmPassword");
|
||||||
setViewTextFromResource(R.id.user_registration_email_text, "email");
|
setViewTextFromResource(R.id.user_registration_email_text, "email");
|
||||||
|
|
||||||
setViewText(R.id.user_registration_login, "q");
|
|
||||||
setViewText(R.id.user_registration_password, "q");
|
|
||||||
setViewText(R.id.user_registration_confirm_password, "q");
|
|
||||||
|
|
||||||
final TextView errorLabel = findTextView(R.id.user_registration_error);
|
final TextView errorLabel = findTextView(R.id.user_registration_error);
|
||||||
errorLabel.setVisibility(View.GONE);
|
errorLabel.setVisibility(View.GONE);
|
||||||
errorLabel.setText("");
|
errorLabel.setText("");
|
||||||
|
|
|
@ -40,7 +40,7 @@ class AddCustomCatalogItemActions extends NetworkTreeActions {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getDefaultActionCode(NetworkTree tree) {
|
public int getDefaultActionCode(NetworkBaseActivity activity, NetworkTree tree) {
|
||||||
return RUN_ITEM_ID;
|
return RUN_ITEM_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ class AddCustomCatalogItemActions extends NetworkTreeActions {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean prepareOptionsMenu(Menu menu, NetworkTree tree) {
|
public boolean prepareOptionsMenu(NetworkBaseActivity activity, Menu menu, NetworkTree tree) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ class AuthenticationDialog extends NetworkDialog {
|
||||||
registerText.setOnClickListener(new View.OnClickListener() {
|
registerText.setOnClickListener(new View.OnClickListener() {
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
final NetworkAuthenticationManager mgr = myLink.authenticationManager();
|
final NetworkAuthenticationManager mgr = myLink.authenticationManager();
|
||||||
if (mgr.registrationSupported()) {
|
if (Util.isRegistrationSupported(myActivity, myLink)) {
|
||||||
myActivity.dismissDialog(NetworkDialog.DIALOG_AUTHENTICATION);
|
myActivity.dismissDialog(NetworkDialog.DIALOG_AUTHENTICATION);
|
||||||
Util.runRegistrationDialog(myActivity, myLink);
|
Util.runRegistrationDialog(myActivity, myLink);
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,7 @@ class AuthenticationDialog extends NetworkDialog {
|
||||||
error.setText(myErrorMessage);
|
error.setText(myErrorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
dialog.findViewById(R.id.network_authentication_register).setVisibility(mgr.registrationSupported() ? View.VISIBLE : View.GONE);
|
dialog.findViewById(R.id.network_authentication_register).setVisibility(Util.isRegistrationSupported(myActivity, myLink) ? View.VISIBLE : View.GONE);
|
||||||
|
|
||||||
View dlgView = dialog.findViewById(R.id.network_authentication_dialog);
|
View dlgView = dialog.findViewById(R.id.network_authentication_dialog);
|
||||||
dlgView.invalidate();
|
dlgView.invalidate();
|
||||||
|
|
|
@ -208,7 +208,7 @@ abstract class NetworkBaseActivity extends ListActivity
|
||||||
if (actions == null) {
|
if (actions == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final int actionCode = actions.getDefaultActionCode(networkTree);
|
final int actionCode = actions.getDefaultActionCode(this, networkTree);
|
||||||
final String confirm = actions.getConfirmText(networkTree, actionCode);
|
final String confirm = actions.getConfirmText(networkTree, actionCode);
|
||||||
if (actionCode == NetworkTreeActions.TREE_SHOW_CONTEXT_MENU) {
|
if (actionCode == NetworkTreeActions.TREE_SHOW_CONTEXT_MENU) {
|
||||||
listView.showContextMenuForChild(view);
|
listView.showContextMenuForChild(view);
|
||||||
|
|
|
@ -189,7 +189,7 @@ class NetworkBookActions extends NetworkTreeActions {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getDefaultActionCode(NetworkTree tree) {
|
public int getDefaultActionCode(NetworkBaseActivity activity, NetworkTree tree) {
|
||||||
if (tree instanceof NetworkAuthorTree || tree instanceof NetworkSeriesTree) {
|
if (tree instanceof NetworkAuthorTree || tree instanceof NetworkSeriesTree) {
|
||||||
return SHOW_BOOKS_ITEM_ID;
|
return SHOW_BOOKS_ITEM_ID;
|
||||||
}
|
}
|
||||||
|
@ -207,7 +207,7 @@ class NetworkBookActions extends NetworkTreeActions {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean prepareOptionsMenu(Menu menu, NetworkTree tree) {
|
public boolean prepareOptionsMenu(NetworkBaseActivity activity, Menu menu, NetworkTree tree) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -127,7 +127,7 @@ class NetworkCatalogActions extends NetworkTreeActions {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getDefaultActionCode(NetworkTree tree) {
|
public int getDefaultActionCode(NetworkBaseActivity activity, NetworkTree tree) {
|
||||||
final NetworkCatalogTree catalogTree = (NetworkCatalogTree) tree;
|
final NetworkCatalogTree catalogTree = (NetworkCatalogTree) tree;
|
||||||
final NetworkCatalogItem item = catalogTree.Item;
|
final NetworkCatalogItem item = catalogTree.Item;
|
||||||
if (item.URLByType.get(NetworkCatalogItem.URL_CATALOG) != null) {
|
if (item.URLByType.get(NetworkCatalogItem.URL_CATALOG) != null) {
|
||||||
|
@ -168,7 +168,7 @@ class NetworkCatalogActions extends NetworkTreeActions {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean prepareOptionsMenu(Menu menu, NetworkTree tree) {
|
public boolean prepareOptionsMenu(NetworkBaseActivity activity, Menu menu, NetworkTree tree) {
|
||||||
final NetworkCatalogTree catalogTree = (NetworkCatalogTree) tree;
|
final NetworkCatalogTree catalogTree = (NetworkCatalogTree) tree;
|
||||||
final NetworkCatalogItem item = catalogTree.Item;
|
final NetworkCatalogItem item = catalogTree.Item;
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ class NetworkCatalogActions extends NetworkTreeActions {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
prepareOptionsItem(menu, SIGNIN_ITEM_ID, signIn);
|
prepareOptionsItem(menu, SIGNIN_ITEM_ID, signIn);
|
||||||
prepareOptionsItem(menu, SIGNUP_ITEM_ID, signIn);
|
prepareOptionsItem(menu, SIGNUP_ITEM_ID, signIn & Util.isRegistrationSupported(activity, item.Link));
|
||||||
prepareOptionsItem(menu, SIGNOUT_ITEM_ID, signOut, "signOut", userName);
|
prepareOptionsItem(menu, SIGNOUT_ITEM_ID, signOut, "signOut", userName);
|
||||||
prepareOptionsItem(menu, REFILL_ACCOUNT_ITEM_ID, refill);
|
prepareOptionsItem(menu, REFILL_ACCOUNT_ITEM_ID, refill);
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -147,17 +147,14 @@ public class NetworkCatalogActivity extends NetworkBaseActivity implements UserR
|
||||||
public CatalogAdapter() {
|
public CatalogAdapter() {
|
||||||
if (myTree instanceof NetworkCatalogRootTree) {
|
if (myTree instanceof NetworkCatalogRootTree) {
|
||||||
NetworkCatalogTree tree = (NetworkCatalogTree) myTree;
|
NetworkCatalogTree tree = (NetworkCatalogTree) myTree;
|
||||||
NetworkAuthenticationManager mgr = tree.Item.Link.authenticationManager();
|
mySpecialItems = new ArrayList<NetworkTree>();
|
||||||
if (mgr != null) {
|
if (Util.isAccountRefillingSupported(NetworkCatalogActivity.this, tree.Item.Link)) {
|
||||||
mySpecialItems = new ArrayList<NetworkTree>();
|
mySpecialItems.add(new RefillAccountTree(tree));
|
||||||
if (mgr.refillAccountSupported()) {
|
}
|
||||||
mySpecialItems.add(new RefillAccountTree(tree));
|
if (mySpecialItems.size() > 0) {
|
||||||
}
|
mySpecialItems.trimToSize();
|
||||||
if (mySpecialItems.size() > 0) {
|
} else {
|
||||||
mySpecialItems.trimToSize();
|
mySpecialItems = null;
|
||||||
} else {
|
|
||||||
mySpecialItems = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -248,7 +245,7 @@ public class NetworkCatalogActivity extends NetworkBaseActivity implements UserR
|
||||||
@Override
|
@Override
|
||||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||||
super.onPrepareOptionsMenu(menu);
|
super.onPrepareOptionsMenu(menu);
|
||||||
return NetworkView.Instance().prepareOptionsMenu(menu, myTree);
|
return NetworkView.Instance().prepareOptionsMenu(this, menu, myTree);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -102,11 +102,11 @@ abstract class NetworkTreeActions {
|
||||||
|
|
||||||
public abstract void buildContextMenu(NetworkBaseActivity activity, ContextMenu menu, NetworkTree tree);
|
public abstract void buildContextMenu(NetworkBaseActivity activity, ContextMenu menu, NetworkTree tree);
|
||||||
|
|
||||||
public abstract int getDefaultActionCode(NetworkTree tree);
|
public abstract int getDefaultActionCode(NetworkBaseActivity activity, NetworkTree tree);
|
||||||
public abstract String getConfirmText(NetworkTree tree, int actionCode);
|
public abstract String getConfirmText(NetworkTree tree, int actionCode);
|
||||||
|
|
||||||
public abstract boolean runAction(NetworkBaseActivity activity, NetworkTree tree, int actionCode);
|
public abstract boolean runAction(NetworkBaseActivity activity, NetworkTree tree, int actionCode);
|
||||||
|
|
||||||
public abstract boolean createOptionsMenu(Menu menu, NetworkTree tree);
|
public abstract boolean createOptionsMenu(Menu menu, NetworkTree tree);
|
||||||
public abstract boolean prepareOptionsMenu(Menu menu, NetworkTree tree);
|
public abstract boolean prepareOptionsMenu(NetworkBaseActivity activity, Menu menu, NetworkTree tree);
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,13 +115,13 @@ class NetworkView {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean prepareOptionsMenu(Menu menu, NetworkTree tree) {
|
public boolean prepareOptionsMenu(NetworkBaseActivity activity, Menu menu, NetworkTree tree) {
|
||||||
if (!isInitialized()) {
|
if (!isInitialized()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
final NetworkTreeActions actions = getActions(tree);
|
final NetworkTreeActions actions = getActions(tree);
|
||||||
if (actions != null) {
|
if (actions != null) {
|
||||||
return actions.prepareOptionsMenu(menu, tree);
|
return actions.prepareOptionsMenu(activity, menu, tree);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ package org.geometerplus.android.fbreader.network;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.ContextMenu;
|
import android.view.ContextMenu;
|
||||||
|
|
||||||
|
import org.geometerplus.fbreader.network.INetworkLink;
|
||||||
import org.geometerplus.fbreader.network.NetworkTree;
|
import org.geometerplus.fbreader.network.NetworkTree;
|
||||||
import org.geometerplus.fbreader.network.authentication.NetworkAuthenticationManager;
|
import org.geometerplus.fbreader.network.authentication.NetworkAuthenticationManager;
|
||||||
|
|
||||||
|
@ -40,13 +41,28 @@ class RefillAccountActions extends NetworkTreeActions {
|
||||||
public void buildContextMenu(NetworkBaseActivity activity, ContextMenu menu, NetworkTree tree) {
|
public void buildContextMenu(NetworkBaseActivity activity, ContextMenu menu, NetworkTree tree) {
|
||||||
menu.setHeaderTitle(getTitleValue("refillTitle"));
|
menu.setHeaderTitle(getTitleValue("refillTitle"));
|
||||||
|
|
||||||
addMenuItem(menu, REFILL_VIA_SMS_ITEM_ID, "refillViaSms");
|
final INetworkLink link = ((RefillAccountTree)tree).Link;
|
||||||
addMenuItem(menu, REFILL_VIA_BROWSER_ITEM_ID, "refillViaBrowser");
|
if (Util.isSmsAccountRefillingSupported(activity, link)) {
|
||||||
|
addMenuItem(menu, REFILL_VIA_SMS_ITEM_ID, "refillViaSms");
|
||||||
|
}
|
||||||
|
if (Util.isBrowserAccountRefillingSupported(activity, link)) {
|
||||||
|
addMenuItem(menu, REFILL_VIA_BROWSER_ITEM_ID, "refillViaBrowser");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getDefaultActionCode(NetworkTree tree) {
|
public int getDefaultActionCode(NetworkBaseActivity activity, NetworkTree tree) {
|
||||||
return TREE_SHOW_CONTEXT_MENU;
|
final INetworkLink link = ((RefillAccountTree)tree).Link;
|
||||||
|
final boolean sms = Util.isSmsAccountRefillingSupported(activity, link);
|
||||||
|
final boolean browser = Util.isBrowserAccountRefillingSupported(activity, link);
|
||||||
|
|
||||||
|
if (sms && browser) {
|
||||||
|
return TREE_SHOW_CONTEXT_MENU;
|
||||||
|
} else if (sms) {
|
||||||
|
return REFILL_VIA_SMS_ITEM_ID;
|
||||||
|
} else /* if (browser) */ {
|
||||||
|
return REFILL_VIA_BROWSER_ITEM_ID;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -60,7 +76,7 @@ class RefillAccountActions extends NetworkTreeActions {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean prepareOptionsMenu(Menu menu, NetworkTree tree) {
|
public boolean prepareOptionsMenu(NetworkBaseActivity activity, Menu menu, NetworkTree tree) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ class SearchItemActions extends NetworkTreeActions {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getDefaultActionCode(NetworkTree tree) {
|
public int getDefaultActionCode(NetworkBaseActivity activity, NetworkTree tree) {
|
||||||
final boolean isLoading = NetworkView.Instance().containsItemsLoadingRunnable(NetworkSearchActivity.SEARCH_RUNNABLE_KEY);
|
final boolean isLoading = NetworkView.Instance().containsItemsLoadingRunnable(NetworkSearchActivity.SEARCH_RUNNABLE_KEY);
|
||||||
if (!isLoading) {
|
if (!isLoading) {
|
||||||
return RUN_SEARCH_ITEM_ID;
|
return RUN_SEARCH_ITEM_ID;
|
||||||
|
@ -78,7 +78,7 @@ class SearchItemActions extends NetworkTreeActions {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean prepareOptionsMenu(Menu menu, NetworkTree tree) {
|
public boolean prepareOptionsMenu(NetworkBaseActivity activity, Menu menu, NetworkTree tree) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,10 +30,35 @@ import org.geometerplus.fbreader.network.INetworkLink;
|
||||||
import org.geometerplus.fbreader.network.authentication.NetworkAuthenticationManager;
|
import org.geometerplus.fbreader.network.authentication.NetworkAuthenticationManager;
|
||||||
|
|
||||||
abstract class Util implements UserRegistrationConstants {
|
abstract class Util implements UserRegistrationConstants {
|
||||||
|
private static final String REGISTRATION_ACTION =
|
||||||
|
"android.fbreader.action.NETWORK_LIBRARY_REGISTER";
|
||||||
|
private static final String SMS_REFILLING_ACTION =
|
||||||
|
"android.fbreader.action.NETWORK_LIBRARY_SMS_REFILLING";
|
||||||
|
|
||||||
|
private static boolean testService(Activity activity, String action, String url) {
|
||||||
|
if (url == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
activity.startActivity(new Intent(action + "_TEST", Uri.parse(url)));
|
||||||
|
return true;
|
||||||
|
} catch (ActivityNotFoundException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static boolean isRegistrationSupported(Activity activity, INetworkLink link) {
|
||||||
|
return testService(
|
||||||
|
activity,
|
||||||
|
REGISTRATION_ACTION,
|
||||||
|
link.getLink(INetworkLink.URL_SIGN_UP)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
static void runRegistrationDialog(Activity activity, INetworkLink link) {
|
static void runRegistrationDialog(Activity activity, INetworkLink link) {
|
||||||
try {
|
try {
|
||||||
activity.startActivityForResult(new Intent(
|
activity.startActivityForResult(new Intent(
|
||||||
"android.fbreader.action.NETWORK_LIBRARY_REGISTER",
|
REGISTRATION_ACTION,
|
||||||
Uri.parse(link.getLink(INetworkLink.URL_SIGN_UP))
|
Uri.parse(link.getLink(INetworkLink.URL_SIGN_UP))
|
||||||
), USER_REGISTRATION_REQUEST_CODE);
|
), USER_REGISTRATION_REQUEST_CODE);
|
||||||
} catch (ActivityNotFoundException e) {
|
} catch (ActivityNotFoundException e) {
|
||||||
|
@ -53,4 +78,22 @@ abstract class Util implements UserRegistrationConstants {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static boolean isAccountRefillingSupported(Activity activity, INetworkLink link) {
|
||||||
|
return
|
||||||
|
isBrowserAccountRefillingSupported(activity, link) ||
|
||||||
|
isSmsAccountRefillingSupported(activity, link);
|
||||||
|
}
|
||||||
|
|
||||||
|
static boolean isSmsAccountRefillingSupported(Activity activity, INetworkLink link) {
|
||||||
|
return testService(
|
||||||
|
activity,
|
||||||
|
SMS_REFILLING_ACTION,
|
||||||
|
link.getLink(INetworkLink.URL_MAIN)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
static boolean isBrowserAccountRefillingSupported(Activity activity, INetworkLink link) {
|
||||||
|
return link.getLink(INetworkLink.URL_REFILL_ACCOUNT) != null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,21 +106,10 @@ public abstract class NetworkAuthenticationManager {
|
||||||
* refill account
|
* refill account
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public boolean refillAccountSupported() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String refillAccountLink() {
|
public String refillAccountLink() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* new User Registration
|
|
||||||
*/
|
|
||||||
public boolean registrationSupported() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract void initUser(String userName, String sid);
|
public abstract void initUser(String userName, String sid);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -230,11 +230,6 @@ public class LitResAuthenticationManager extends NetworkAuthenticationManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean refillAccountSupported() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String refillAccountLink() {
|
public String refillAccountLink() {
|
||||||
final String sid;
|
final String sid;
|
||||||
|
@ -401,28 +396,6 @@ public class LitResAuthenticationManager extends NetworkAuthenticationManager {
|
||||||
myAccount = BuyBookReference.price(reader.Account, "RUB");
|
myAccount = BuyBookReference.price(reader.Account, "RUB");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean registrationSupported() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
@Override
|
|
||||||
public void registerUser(String login, String password, String email) throws ZLNetworkException {
|
|
||||||
synchronized (this) {
|
|
||||||
mySidChecked = true;
|
|
||||||
if (exception != null) {
|
|
||||||
mySidUserNameOption.setValue("");
|
|
||||||
mySidOption.setValue("");
|
|
||||||
throw exception;
|
|
||||||
}
|
|
||||||
mySidOption.setValue(xmlReader.Sid);
|
|
||||||
mySidUserNameOption.setValue(login);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean passwordRecoverySupported() {
|
public boolean passwordRecoverySupported() {
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue