1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 18:29:23 +02:00

code simplification

This commit is contained in:
Nikolay Pultsin 2011-09-27 00:06:11 +01:00
parent 19a3f74977
commit 0ae5dddabf
20 changed files with 72 additions and 70 deletions

View file

@ -32,6 +32,7 @@ import android.widget.ListView;
import org.geometerplus.zlibrary.core.network.ZLNetworkManager;
import org.geometerplus.zlibrary.core.resources.ZLResource;
import org.geometerplus.zlibrary.core.util.ZLBoolean3;
import org.geometerplus.zlibrary.ui.android.network.SQLiteCookieDatabase;
@ -135,7 +136,7 @@ public class NetworkLibraryActivity extends TreeActivity implements NetworkLibra
final NetworkTree tree =
NetworkLibrary.Instance().getCatalogTreeByUrl(uri.toString());
if (tree != null) {
new OpenCatalogAction(this).checkAndRun(tree);
checkAndRun(new OpenCatalogAction(this), tree);
return true;
}
}
@ -253,7 +254,7 @@ public class NetworkLibraryActivity extends TreeActivity implements NetworkLibra
if (tree != null) {
for (Action a : getContextMenuActions(tree)) {
if (a.Code == item.getItemId()) {
a.checkAndRun(tree);
checkAndRun(a, tree);
return true;
}
}
@ -270,7 +271,7 @@ public class NetworkLibraryActivity extends TreeActivity implements NetworkLibra
final NetworkTree tree = (NetworkTree)getListAdapter().getItem(position);
for (Action a : myListClickActions) {
if (a.isVisible(tree) && a.isEnabled(tree)) {
a.checkAndRun(tree);
checkAndRun(a, tree);
return;
}
}
@ -337,7 +338,7 @@ public class NetworkLibraryActivity extends TreeActivity implements NetworkLibra
final NetworkTree tree = (NetworkTree)getCurrentTree();
for (Action a : myOptionsMenuActions) {
if (a.Code == item.getItemId()) {
a.checkAndRun(tree);
checkAndRun(a, tree);
break;
}
}
@ -435,4 +436,31 @@ public class NetworkLibraryActivity extends TreeActivity implements NetworkLibra
})
.create().show();
}
private void checkAndRun(final Action action, final NetworkTree tree) {
if (tree instanceof NetworkCatalogTree) {
final NetworkCatalogTree catalogTree = (NetworkCatalogTree)tree;
switch (catalogTree.getVisibility()) {
case B3_FALSE:
break;
case B3_TRUE:
action.run(tree);
break;
case B3_UNDEFINED:
Util.runAuthenticationDialog(this, tree.getLink(), new Runnable() {
public void run() {
if (catalogTree.getVisibility() != ZLBoolean3.B3_TRUE) {
return;
}
if (action.Code != ActionCode.SIGNIN) {
action.run(tree);
}
}
});
break;
}
} else {
action.run(tree);
}
}
}

View file

@ -31,6 +31,7 @@ import org.geometerplus.fbreader.network.*;
import org.geometerplus.fbreader.network.authentication.NetworkAuthenticationManager;
import org.geometerplus.fbreader.network.authentication.litres.LitResAuthenticationManager;
import org.geometerplus.fbreader.network.tree.NetworkBookTree;
import org.geometerplus.fbreader.network.tree.NetworkCatalogTree;
import org.geometerplus.fbreader.network.urlInfo.UrlInfo;
import org.geometerplus.android.util.UIUtil;
@ -186,19 +187,6 @@ public abstract class Util implements UserRegistrationConstants {
}
}
public static void openTree(Context context, NetworkTree tree) {
final Class<?> clz = tree instanceof NetworkBookTree
? NetworkBookInfoActivity.class : NetworkLibraryActivity.class;
if (context instanceof NetworkLibraryActivity && clz == NetworkLibraryActivity.class) {
((NetworkLibraryActivity)context).openTree(tree);
} else {
context.startActivity(
new Intent(context.getApplicationContext(), clz)
.putExtra(NetworkLibraryActivity.TREE_KEY_KEY, tree.getUniqueKey())
);
}
}
public static NetworkTree getTreeFromIntent(Intent intent) {
final NetworkLibrary library = NetworkLibrary.Instance();
final NetworkTree.Key key = (NetworkTree.Key)intent.getSerializableExtra(NetworkLibraryActivity.TREE_KEY_KEY);

View file

@ -21,8 +21,6 @@ package org.geometerplus.android.fbreader.network.action;
import android.app.Activity;
import org.geometerplus.zlibrary.core.util.ZLBoolean3;
import org.geometerplus.fbreader.network.NetworkTree;
import org.geometerplus.fbreader.network.NetworkLibrary;
import org.geometerplus.fbreader.network.tree.NetworkCatalogTree;
@ -49,7 +47,7 @@ public abstract class Action {
return true;
}
protected abstract void run(NetworkTree tree);
public abstract void run(NetworkTree tree);
public String getContextLabel(NetworkTree tree) {
return
@ -60,28 +58,4 @@ public abstract class Action {
return
NetworkLibrary.resource().getResource("menu").getResource(myResourceKey).getValue();
}
public void checkAndRun(final NetworkTree tree) {
if (tree instanceof NetworkCatalogTree) {
switch (((NetworkCatalogTree)tree).getVisibility()) {
case B3_TRUE:
run(tree);
break;
case B3_UNDEFINED:
Util.runAuthenticationDialog(myActivity, tree.getLink(), new Runnable() {
public void run() {
if (((NetworkCatalogTree)tree).getVisibility() != ZLBoolean3.B3_TRUE) {
return;
}
if (Code != ActionCode.SIGNIN) {
Action.this.run(tree);
}
}
});
break;
}
} else {
run(tree);
}
}
}

View file

@ -41,7 +41,7 @@ public class AddCustomCatalogAction extends Action {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
myActivity.startActivity(new Intent(myActivity, AddCustomCatalogActivity.class));
}
}

View file

@ -35,7 +35,7 @@ public class BuyBasketBooksAction extends CatalogAction {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
// TODO: implement
}
}

View file

@ -35,7 +35,7 @@ public class ClearBasketAction extends CatalogAction {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
tree.getLink().basket().clear();
}
}

View file

@ -42,7 +42,7 @@ public class EditCustomCatalogAction extends CatalogAction {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
final Intent intent = new Intent(myActivity, AddCustomCatalogActivity.class);
Util.intentByLink(intent, tree.getLink());
intent.putExtra(AddCustomCatalogActivity.EDIT_KEY, true);

View file

@ -39,7 +39,7 @@ public class LanguageFilterAction extends RootAction {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
final NetworkLibrary library = NetworkLibrary.Instance();
final List<String> allLanguageCodes = library.languageCodes();

View file

@ -86,7 +86,7 @@ public abstract class NetworkBookActions {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
run(getBook(tree));
}

View file

@ -28,9 +28,8 @@ import org.geometerplus.fbreader.network.tree.NetworkCatalogTree;
import org.geometerplus.fbreader.network.tree.NetworkItemsLoader;
import org.geometerplus.fbreader.network.tree.CatalogExpander;
import org.geometerplus.android.fbreader.network.Util;
import org.geometerplus.android.fbreader.network.NetworkLibraryActivity;
import org.geometerplus.android.util.UIUtil;
import org.geometerplus.android.util.PackageUtil;
public class OpenCatalogAction extends CatalogAction {
@ -51,10 +50,14 @@ public class OpenCatalogAction extends CatalogAction {
doExpandCatalog((NetworkCatalogTree)tree);
}
private void doOpenTree(NetworkCatalogTree tree) {
((NetworkLibraryActivity)myActivity).openTree(tree);
}
private void doExpandCatalog(final NetworkCatalogTree tree) {
final NetworkItemsLoader loader = NetworkLibrary.Instance().getStoredLoader(tree);
if (loader != null && loader.canResumeLoading()) {
Util.openTree(myActivity, tree);
doOpenTree(tree);
} else if (loader != null) {
loader.setPostRunnable(new Runnable() {
public void run() {
@ -73,7 +76,7 @@ public class OpenCatalogAction extends CatalogAction {
if (tree.Item.supportsResumeLoading()) {
resumeNotLoad = true;
} else {
Util.openTree(myActivity, tree);
doOpenTree(tree);
return;
}
} else {
@ -84,7 +87,7 @@ public class OpenCatalogAction extends CatalogAction {
new CatalogExpander(tree, true, resumeNotLoad).start();
processExtraData(tree.Item.extraData(), new Runnable() {
public void run() {
Util.openTree(myActivity, tree);
doOpenTree(tree);
}
});
}

View file

@ -51,7 +51,7 @@ public class OpenInBrowserAction extends CatalogAction {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
final String url =
((NetworkURLCatalogItem)((NetworkCatalogTree)tree).Item).getUrl(UrlInfo.Type.HtmlPage);

View file

@ -41,7 +41,7 @@ public class RefreshRootCatalogAction extends RootAction {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
NetworkLibrary.Instance().runBackgroundUpdate(true);
}
}

View file

@ -51,7 +51,7 @@ public class ReloadCatalogAction extends CatalogAction {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
if (NetworkLibrary.Instance().getStoredLoader(tree) != null) {
return;
}

View file

@ -39,7 +39,7 @@ public class RemoveCustomCatalogAction extends CatalogAction {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
final NetworkLibrary library = NetworkLibrary.Instance();
library.removeCustomLink((ICustomNetworkLink)tree.getLink());
library.synchronize();

View file

@ -20,12 +20,14 @@
package org.geometerplus.android.fbreader.network.action;
import android.app.Activity;
import android.content.Intent;
import org.geometerplus.zlibrary.core.network.ZLNetworkException;
import org.geometerplus.fbreader.network.NetworkTree;
import org.geometerplus.android.fbreader.network.Util;
import org.geometerplus.android.fbreader.network.NetworkLibraryActivity;
import org.geometerplus.android.fbreader.network.NetworkBookInfoActivity;
import org.geometerplus.android.util.UIUtil;
@ -35,9 +37,9 @@ public class ShowBookInfoAction extends BookAction {
}
@Override
protected void run(final NetworkTree tree) {
public void run(final NetworkTree tree) {
if (getBook(tree).isFullyLoaded()) {
Util.openTree(myActivity, tree);
showBookInfo(tree);
} else {
UIUtil.wait("loadInfo", new Runnable() {
public void run() {
@ -48,11 +50,18 @@ public class ShowBookInfoAction extends BookAction {
}
myActivity.runOnUiThread(new Runnable() {
public void run() {
Util.openTree(myActivity, tree);
showBookInfo(tree);
}
});
}
}, myActivity);
}
}
private void showBookInfo(NetworkTree tree) {
myActivity.startActivity(
new Intent(myActivity, NetworkBookInfoActivity.class)
.putExtra(NetworkLibraryActivity.TREE_KEY_KEY, tree.getUniqueKey())
);
}
}

View file

@ -25,7 +25,7 @@ import org.geometerplus.fbreader.network.NetworkTree;
import org.geometerplus.fbreader.network.tree.NetworkAuthorTree;
import org.geometerplus.fbreader.network.tree.NetworkSeriesTree;
import org.geometerplus.android.fbreader.network.Util;
import org.geometerplus.android.fbreader.network.NetworkLibraryActivity;
public class ShowBooksAction extends Action {
public ShowBooksAction(Activity activity) {
@ -38,7 +38,7 @@ public class ShowBooksAction extends Action {
}
@Override
protected void run(NetworkTree tree) {
Util.openTree(myActivity, tree);
public void run(NetworkTree tree) {
((NetworkLibraryActivity)myActivity).openTree(tree);
}
}

View file

@ -43,7 +43,7 @@ public class SignInAction extends Action {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
Util.runAuthenticationDialog(myActivity, tree.getLink(), null);
}
}

View file

@ -44,7 +44,7 @@ public class SignOutAction extends Action {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
final NetworkAuthenticationManager mgr = tree.getLink().authenticationManager();
final Runnable runnable = new Runnable() {
public void run() {

View file

@ -48,7 +48,7 @@ public class SignUpAction extends Action {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
Util.runRegistrationDialog(myActivity, tree.getLink());
}
}

View file

@ -54,7 +54,7 @@ public class TopupAction extends Action {
}
@Override
protected void run(NetworkTree tree) {
public void run(NetworkTree tree) {
final INetworkLink link = tree.getLink();
if (link != null) {
TopupMenuActivity.runMenu(myActivity, link, null);