mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-05 10:49:24 +02:00
code simplification
This commit is contained in:
parent
792b2a2258
commit
e3debc9956
13 changed files with 100 additions and 143 deletions
|
@ -46,7 +46,7 @@ import org.geometerplus.android.fbreader.BookInfoActivity;
|
||||||
import org.geometerplus.android.fbreader.tree.BaseActivity;
|
import org.geometerplus.android.fbreader.tree.BaseActivity;
|
||||||
import org.geometerplus.android.fbreader.tree.ListAdapter;
|
import org.geometerplus.android.fbreader.tree.ListAdapter;
|
||||||
|
|
||||||
public class LibraryActivity extends BaseActivity implements MenuItem.OnMenuItemClickListener {
|
public class LibraryActivity extends BaseActivity implements MenuItem.OnMenuItemClickListener, View.OnCreateContextMenuListener {
|
||||||
public static final String TREE_KEY_KEY = "TreeKey";
|
public static final String TREE_KEY_KEY = "TreeKey";
|
||||||
public static final String SELECTED_BOOK_PATH_KEY = "SelectedBookPath";
|
public static final String SELECTED_BOOK_PATH_KEY = "SelectedBookPath";
|
||||||
|
|
||||||
|
@ -89,6 +89,8 @@ public class LibraryActivity extends BaseActivity implements MenuItem.OnMenuItem
|
||||||
final ListAdapter adapter = new LibraryListAdapter(this, getCurrentTree().subTrees());
|
final ListAdapter adapter = new LibraryListAdapter(this, getCurrentTree().subTrees());
|
||||||
setSelection(adapter.getFirstSelectedItemIndex());
|
setSelection(adapter.getFirstSelectedItemIndex());
|
||||||
getListView().setTextFilterEnabled(true);
|
getListView().setTextFilterEnabled(true);
|
||||||
|
|
||||||
|
getListView().setOnCreateContextMenuListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -279,46 +281,6 @@ public class LibraryActivity extends BaseActivity implements MenuItem.OnMenuItem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Item icons
|
|
||||||
//
|
|
||||||
@Override
|
|
||||||
public int getCoverResourceId(FBTree tree) {
|
|
||||||
if (((LibraryTree)tree).getBook() != null) {
|
|
||||||
return R.drawable.ic_list_library_book;
|
|
||||||
} else if (tree instanceof FirstLevelTree) {
|
|
||||||
final String id = tree.getUniqueKey().Id;
|
|
||||||
if (Library.ROOT_FAVORITES.equals(id)) {
|
|
||||||
return R.drawable.ic_list_library_favorites;
|
|
||||||
} else if (Library.ROOT_RECENT.equals(id)) {
|
|
||||||
return R.drawable.ic_list_library_recent;
|
|
||||||
} else if (Library.ROOT_BY_AUTHOR.equals(id)) {
|
|
||||||
return R.drawable.ic_list_library_authors;
|
|
||||||
} else if (Library.ROOT_BY_TITLE.equals(id)) {
|
|
||||||
return R.drawable.ic_list_library_books;
|
|
||||||
} else if (Library.ROOT_BY_TAG.equals(id)) {
|
|
||||||
return R.drawable.ic_list_library_tags;
|
|
||||||
} else if (Library.ROOT_FILE_TREE.equals(id)) {
|
|
||||||
return R.drawable.ic_list_library_folder;
|
|
||||||
}
|
|
||||||
} else if (tree instanceof FileTree) {
|
|
||||||
final ZLFile file = ((FileTree)tree).getFile();
|
|
||||||
if (file.isArchive()) {
|
|
||||||
return R.drawable.ic_list_library_zip;
|
|
||||||
} else if (file.isDirectory() && file.isReadable()) {
|
|
||||||
return R.drawable.ic_list_library_folder;
|
|
||||||
} else {
|
|
||||||
return R.drawable.ic_list_library_permission_denied;
|
|
||||||
}
|
|
||||||
} else if (tree instanceof AuthorTree) {
|
|
||||||
return R.drawable.ic_list_library_author;
|
|
||||||
} else if (tree instanceof TagTree) {
|
|
||||||
return R.drawable.ic_list_library_tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
return R.drawable.ic_list_library_books;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Book deletion
|
// Book deletion
|
||||||
//
|
//
|
||||||
|
|
|
@ -27,12 +27,14 @@ import android.widget.*;
|
||||||
|
|
||||||
import org.geometerplus.zlibrary.core.image.ZLImage;
|
import org.geometerplus.zlibrary.core.image.ZLImage;
|
||||||
import org.geometerplus.zlibrary.core.image.ZLLoadableImage;
|
import org.geometerplus.zlibrary.core.image.ZLLoadableImage;
|
||||||
|
import org.geometerplus.zlibrary.core.filesystem.ZLFile;
|
||||||
|
|
||||||
import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageData;
|
import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageData;
|
||||||
import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageManager;
|
import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageManager;
|
||||||
import org.geometerplus.zlibrary.ui.android.R;
|
import org.geometerplus.zlibrary.ui.android.R;
|
||||||
|
|
||||||
import org.geometerplus.fbreader.tree.FBTree;
|
import org.geometerplus.fbreader.tree.FBTree;
|
||||||
|
import org.geometerplus.fbreader.library.*;
|
||||||
|
|
||||||
import org.geometerplus.android.fbreader.tree.BaseActivity;
|
import org.geometerplus.android.fbreader.tree.BaseActivity;
|
||||||
import org.geometerplus.android.fbreader.tree.ListAdapter;
|
import org.geometerplus.android.fbreader.tree.ListAdapter;
|
||||||
|
@ -110,9 +112,45 @@ class LibraryListAdapter extends ListAdapter {
|
||||||
if (coverBitmap != null) {
|
if (coverBitmap != null) {
|
||||||
coverView.setImageBitmap(coverBitmap);
|
coverView.setImageBitmap(coverBitmap);
|
||||||
} else {
|
} else {
|
||||||
coverView.setImageResource(getActivity().getCoverResourceId(tree));
|
coverView.setImageResource(getCoverResourceId(tree));
|
||||||
}
|
}
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getCoverResourceId(FBTree tree) {
|
||||||
|
if (((LibraryTree)tree).getBook() != null) {
|
||||||
|
return R.drawable.ic_list_library_book;
|
||||||
|
} else if (tree instanceof FirstLevelTree) {
|
||||||
|
final String id = tree.getUniqueKey().Id;
|
||||||
|
if (Library.ROOT_FAVORITES.equals(id)) {
|
||||||
|
return R.drawable.ic_list_library_favorites;
|
||||||
|
} else if (Library.ROOT_RECENT.equals(id)) {
|
||||||
|
return R.drawable.ic_list_library_recent;
|
||||||
|
} else if (Library.ROOT_BY_AUTHOR.equals(id)) {
|
||||||
|
return R.drawable.ic_list_library_authors;
|
||||||
|
} else if (Library.ROOT_BY_TITLE.equals(id)) {
|
||||||
|
return R.drawable.ic_list_library_books;
|
||||||
|
} else if (Library.ROOT_BY_TAG.equals(id)) {
|
||||||
|
return R.drawable.ic_list_library_tags;
|
||||||
|
} else if (Library.ROOT_FILE_TREE.equals(id)) {
|
||||||
|
return R.drawable.ic_list_library_folder;
|
||||||
|
}
|
||||||
|
} else if (tree instanceof FileTree) {
|
||||||
|
final ZLFile file = ((FileTree)tree).getFile();
|
||||||
|
if (file.isArchive()) {
|
||||||
|
return R.drawable.ic_list_library_zip;
|
||||||
|
} else if (file.isDirectory() && file.isReadable()) {
|
||||||
|
return R.drawable.ic_list_library_folder;
|
||||||
|
} else {
|
||||||
|
return R.drawable.ic_list_library_permission_denied;
|
||||||
|
}
|
||||||
|
} else if (tree instanceof AuthorTree) {
|
||||||
|
return R.drawable.ic_list_library_author;
|
||||||
|
} else if (tree instanceof TagTree) {
|
||||||
|
return R.drawable.ic_list_library_tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
return R.drawable.ic_list_library_books;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,13 +37,12 @@ import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageManager;
|
||||||
import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageData;
|
import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageData;
|
||||||
import org.geometerplus.zlibrary.ui.android.network.SQLiteCookieDatabase;
|
import org.geometerplus.zlibrary.ui.android.network.SQLiteCookieDatabase;
|
||||||
|
|
||||||
|
import org.geometerplus.fbreader.tree.FBTree;
|
||||||
import org.geometerplus.fbreader.network.NetworkTree;
|
import org.geometerplus.fbreader.network.NetworkTree;
|
||||||
import org.geometerplus.fbreader.network.tree.NetworkBookTree;
|
import org.geometerplus.fbreader.network.tree.NetworkBookTree;
|
||||||
import org.geometerplus.fbreader.network.tree.AddCustomCatalogItemTree;
|
import org.geometerplus.fbreader.network.tree.AddCustomCatalogItemTree;
|
||||||
import org.geometerplus.fbreader.network.tree.SearchItemTree;
|
import org.geometerplus.fbreader.network.tree.SearchItemTree;
|
||||||
|
|
||||||
import org.geometerplus.android.fbreader.tree.ZLAndroidTree;
|
|
||||||
|
|
||||||
abstract class NetworkBaseActivity extends ListActivity implements NetworkView.EventListener {
|
abstract class NetworkBaseActivity extends ListActivity implements NetworkView.EventListener {
|
||||||
protected static final int BASIC_AUTHENTICATION_CODE = 1;
|
protected static final int BASIC_AUTHENTICATION_CODE = 1;
|
||||||
protected static final int CUSTOM_AUTHENTICATION_CODE = 2;
|
protected static final int CUSTOM_AUTHENTICATION_CODE = 2;
|
||||||
|
@ -53,6 +52,16 @@ abstract class NetworkBaseActivity extends ListActivity implements NetworkView.E
|
||||||
|
|
||||||
public BookDownloaderServiceConnection Connection;
|
public BookDownloaderServiceConnection Connection;
|
||||||
|
|
||||||
|
private FBTree myCurrentTree;
|
||||||
|
|
||||||
|
protected FBTree getCurrentTree() {
|
||||||
|
return myCurrentTree;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setCurrentTree(FBTree tree) {
|
||||||
|
myCurrentTree = tree;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
|
@ -112,19 +121,6 @@ abstract class NetworkBaseActivity extends ListActivity implements NetworkView.E
|
||||||
};
|
};
|
||||||
|
|
||||||
private void setupCover(final ImageView coverView, NetworkTree tree, int width, int height) {
|
private void setupCover(final ImageView coverView, NetworkTree tree, int width, int height) {
|
||||||
if (tree instanceof AddCustomCatalogItemTree) {
|
|
||||||
coverView.setImageResource(R.drawable.ic_list_plus);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (tree instanceof SearchItemTree) {
|
|
||||||
coverView.setImageResource(R.drawable.ic_list_searchresult);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (tree instanceof ZLAndroidTree) {
|
|
||||||
coverView.setImageResource(((ZLAndroidTree)tree).getCoverResourceId());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Bitmap coverBitmap = null;
|
Bitmap coverBitmap = null;
|
||||||
ZLImage cover = tree.getCover();
|
ZLImage cover = tree.getCover();
|
||||||
if (cover != null) {
|
if (cover != null) {
|
||||||
|
@ -148,6 +144,10 @@ abstract class NetworkBaseActivity extends ListActivity implements NetworkView.E
|
||||||
coverView.setImageBitmap(coverBitmap);
|
coverView.setImageBitmap(coverBitmap);
|
||||||
} else if (tree instanceof NetworkBookTree) {
|
} else if (tree instanceof NetworkBookTree) {
|
||||||
coverView.setImageResource(R.drawable.ic_list_library_book);
|
coverView.setImageResource(R.drawable.ic_list_library_book);
|
||||||
|
} else if (tree instanceof AddCustomCatalogItemTree) {
|
||||||
|
coverView.setImageResource(R.drawable.ic_list_plus);
|
||||||
|
} else if (tree instanceof SearchItemTree) {
|
||||||
|
coverView.setImageResource(R.drawable.ic_list_searchresult);
|
||||||
} else {
|
} else {
|
||||||
coverView.setImageResource(R.drawable.ic_list_library_books);
|
coverView.setImageResource(R.drawable.ic_list_library_books);
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,14 +60,6 @@ class NetworkCatalogActions extends NetworkTreeActions {
|
||||||
return tree instanceof NetworkCatalogTree;
|
return tree instanceof NetworkCatalogTree;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getTreeTitle(NetworkTree tree) {
|
|
||||||
if (tree instanceof NetworkCatalogRootTree) {
|
|
||||||
return tree.getName();
|
|
||||||
}
|
|
||||||
return tree.getName() + " - " + ((NetworkCatalogTree)tree).Item.Link.getSiteName();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void buildContextMenu(Activity activity, ContextMenu menu, NetworkTree tree) {
|
public void buildContextMenu(Activity activity, ContextMenu menu, NetworkTree tree) {
|
||||||
final NetworkCatalogItem item = ((NetworkCatalogTree)tree).Item;
|
final NetworkCatalogItem item = ((NetworkCatalogTree)tree).Item;
|
||||||
|
|
|
@ -48,7 +48,6 @@ public class NetworkCatalogActivity extends NetworkBaseActivity implements UserR
|
||||||
return (NetworkCatalogActivity)tree.getUserData(ACTIVITY_BY_TREE_KEY);
|
return (NetworkCatalogActivity)tree.getUserData(ACTIVITY_BY_TREE_KEY);
|
||||||
}
|
}
|
||||||
|
|
||||||
private NetworkTree myTree;
|
|
||||||
private volatile boolean myInProgress;
|
private volatile boolean myInProgress;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -57,14 +56,14 @@ public class NetworkCatalogActivity extends NetworkBaseActivity implements UserR
|
||||||
|
|
||||||
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
|
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
|
||||||
|
|
||||||
myTree = Util.getTreeFromIntent(getIntent());
|
setCurrentTree(Util.getTreeFromIntent(getIntent()));
|
||||||
|
|
||||||
if (myTree == null) {
|
if (getCurrentTree() == null) {
|
||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
setForTree(myTree, this);
|
setForTree((NetworkTree)getCurrentTree(), this);
|
||||||
|
|
||||||
setListAdapter(new CatalogAdapter());
|
setListAdapter(new CatalogAdapter());
|
||||||
getListView().invalidateViews();
|
getListView().invalidateViews();
|
||||||
|
@ -73,8 +72,8 @@ public class NetworkCatalogActivity extends NetworkBaseActivity implements UserR
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {
|
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {
|
||||||
if (menuInfo == null && myTree instanceof NetworkCatalogTree) {
|
if (menuInfo == null && getCurrentTree() instanceof NetworkCatalogTree) {
|
||||||
final INetworkLink link = ((NetworkCatalogTree)myTree).Item.Link;
|
final INetworkLink link = ((NetworkCatalogTree)getCurrentTree()).Item.Link;
|
||||||
if (Util.isTopupSupported(this, link)) {
|
if (Util.isTopupSupported(this, link)) {
|
||||||
final TopupActions actions = NetworkView.Instance().getTopupActions();
|
final TopupActions actions = NetworkView.Instance().getTopupActions();
|
||||||
if (actions != null) {
|
if (actions != null) {
|
||||||
|
@ -88,8 +87,8 @@ public class NetworkCatalogActivity extends NetworkBaseActivity implements UserR
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextItemSelected(MenuItem item) {
|
public boolean onContextItemSelected(MenuItem item) {
|
||||||
if ((item == null || item.getMenuInfo() == null) && myTree instanceof NetworkCatalogTree) {
|
if ((item == null || item.getMenuInfo() == null) && getCurrentTree() instanceof NetworkCatalogTree) {
|
||||||
final INetworkLink link = ((NetworkCatalogTree)myTree).Item.Link;
|
final INetworkLink link = ((NetworkCatalogTree)getCurrentTree()).Item.Link;
|
||||||
if (Util.isTopupSupported(this, link)) {
|
if (Util.isTopupSupported(this, link)) {
|
||||||
final TopupActions actions = NetworkView.Instance().getTopupActions();
|
final TopupActions actions = NetworkView.Instance().getTopupActions();
|
||||||
if (actions != null && TopupActions.runAction(this, link, item.getItemId())) {
|
if (actions != null && TopupActions.runAction(this, link, item.getItemId())) {
|
||||||
|
@ -155,34 +154,23 @@ public class NetworkCatalogActivity extends NetworkBaseActivity implements UserR
|
||||||
break;
|
break;
|
||||||
case CUSTOM_AUTHENTICATION_CODE:
|
case CUSTOM_AUTHENTICATION_CODE:
|
||||||
Util.processCustomAuthentication(
|
Util.processCustomAuthentication(
|
||||||
this, ((NetworkCatalogTree)myTree).Item.Link, resultCode, data
|
this, ((NetworkCatalogTree)getCurrentTree()).Item.Link, resultCode, data
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case SIGNUP_CODE:
|
case SIGNUP_CODE:
|
||||||
Util.processSignup(((NetworkCatalogTree)myTree).Item.Link, resultCode, data);
|
Util.processSignup(((NetworkCatalogTree)getCurrentTree()).Item.Link, resultCode, data);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final void setupTitle() {
|
private final void setupTitle() {
|
||||||
String title = null;
|
setTitle(getCurrentTree().getTreeTitle());
|
||||||
final NetworkView networkView = NetworkView.Instance();
|
|
||||||
if (networkView.isInitialized()) {
|
|
||||||
final NetworkTreeActions actions = networkView.getActions(myTree);
|
|
||||||
if (actions != null) {
|
|
||||||
title = actions.getTreeTitle(myTree);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (title == null) {
|
|
||||||
title = myTree.getName();
|
|
||||||
}
|
|
||||||
setTitle(title);
|
|
||||||
setProgressBarIndeterminateVisibility(myInProgress);
|
setProgressBarIndeterminateVisibility(myInProgress);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
setForTree(myTree, null);
|
setForTree((NetworkTree)getCurrentTree(), null);
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -194,14 +182,14 @@ public class NetworkCatalogActivity extends NetworkBaseActivity implements UserR
|
||||||
|
|
||||||
private final class CatalogAdapter extends BaseAdapter {
|
private final class CatalogAdapter extends BaseAdapter {
|
||||||
public final int getCount() {
|
public final int getCount() {
|
||||||
return myTree.subTrees().size();
|
return getCurrentTree().subTrees().size();
|
||||||
}
|
}
|
||||||
|
|
||||||
public final NetworkTree getItem(int position) {
|
public final NetworkTree getItem(int position) {
|
||||||
if (position < 0 || position >= myTree.subTrees().size()) {
|
if (position < 0 || position >= getCurrentTree().subTrees().size()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return (NetworkTree)myTree.subTrees().get(position);
|
return (NetworkTree)getCurrentTree().subTrees().get(position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final long getItemId(int position) {
|
public final long getItemId(int position) {
|
||||||
|
@ -215,7 +203,7 @@ public class NetworkCatalogActivity extends NetworkBaseActivity implements UserR
|
||||||
|
|
||||||
void onModelChanged() {
|
void onModelChanged() {
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
for (FBTree child : myTree.subTrees()) {
|
for (FBTree child : getCurrentTree().subTrees()) {
|
||||||
if (child instanceof TopUpTree) {
|
if (child instanceof TopUpTree) {
|
||||||
child.invalidateChildren();
|
child.invalidateChildren();
|
||||||
}
|
}
|
||||||
|
@ -238,7 +226,7 @@ public class NetworkCatalogActivity extends NetworkBaseActivity implements UserR
|
||||||
public void onModelChanged() {
|
public void onModelChanged() {
|
||||||
runOnUiThread(new Runnable() {
|
runOnUiThread(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
final NetworkTree tree = getLoadableNetworkTree(myTree);
|
final NetworkTree tree = getLoadableNetworkTree((NetworkTree)getCurrentTree());
|
||||||
myInProgress =
|
myInProgress =
|
||||||
tree != null &&
|
tree != null &&
|
||||||
ItemsLoadingService.getRunnable(tree) != null;
|
ItemsLoadingService.getRunnable(tree) != null;
|
||||||
|
@ -266,7 +254,7 @@ public class NetworkCatalogActivity extends NetworkBaseActivity implements UserR
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doStopLoading() {
|
private void doStopLoading() {
|
||||||
final ItemsLoader runnable = ItemsLoadingService.getRunnable(myTree);
|
final ItemsLoader runnable = ItemsLoadingService.getRunnable((NetworkTree)getCurrentTree());
|
||||||
if (runnable != null) {
|
if (runnable != null) {
|
||||||
runnable.interruptLoading();
|
runnable.interruptLoading();
|
||||||
}
|
}
|
||||||
|
@ -275,18 +263,18 @@ public class NetworkCatalogActivity extends NetworkBaseActivity implements UserR
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
super.onCreateOptionsMenu(menu);
|
super.onCreateOptionsMenu(menu);
|
||||||
return NetworkView.Instance().createOptionsMenu(menu, myTree);
|
return NetworkView.Instance().createOptionsMenu(menu, (NetworkTree)getCurrentTree());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||||
super.onPrepareOptionsMenu(menu);
|
super.onPrepareOptionsMenu(menu);
|
||||||
return NetworkView.Instance().prepareOptionsMenu(this, menu, myTree);
|
return NetworkView.Instance().prepareOptionsMenu(this, menu, (NetworkTree)getCurrentTree());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
if (NetworkView.Instance().runOptionsMenu(this, item, myTree)) {
|
if (NetworkView.Instance().runOptionsMenu(this, item, (NetworkTree)getCurrentTree())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
|
|
|
@ -77,7 +77,6 @@ public class NetworkLibraryActivity extends NetworkBaseActivity {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private NetworkTree myTree;
|
|
||||||
private volatile Intent myIntent;
|
private volatile Intent myIntent;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -122,8 +121,8 @@ public class NetworkLibraryActivity extends NetworkBaseActivity {
|
||||||
}
|
}
|
||||||
|
|
||||||
void prepareView() {
|
void prepareView() {
|
||||||
if (myTree == null) {
|
if (getCurrentTree() == null) {
|
||||||
myTree = NetworkLibrary.Instance().getRootTree();
|
setCurrentTree(NetworkLibrary.Instance().getRootTree());
|
||||||
setListAdapter(new LibraryAdapter());
|
setListAdapter(new LibraryAdapter());
|
||||||
getListView().invalidateViews();
|
getListView().invalidateViews();
|
||||||
}
|
}
|
||||||
|
@ -161,11 +160,11 @@ public class NetworkLibraryActivity extends NetworkBaseActivity {
|
||||||
if (!NetworkView.Instance().isInitialized()) {
|
if (!NetworkView.Instance().isInitialized()) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return myTree.subTrees().size();
|
return getCurrentTree().subTrees().size();
|
||||||
}
|
}
|
||||||
|
|
||||||
public final NetworkTree getItem(int position) {
|
public final NetworkTree getItem(int position) {
|
||||||
return (NetworkTree)myTree.subTrees().get(position);
|
return (NetworkTree)getCurrentTree().subTrees().get(position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final long getItemId(int position) {
|
public final long getItemId(int position) {
|
||||||
|
|
|
@ -97,10 +97,6 @@ abstract class NetworkTreeActions {
|
||||||
|
|
||||||
public abstract boolean canHandleTree(NetworkTree tree);
|
public abstract boolean canHandleTree(NetworkTree tree);
|
||||||
|
|
||||||
public String getTreeTitle(NetworkTree tree) {
|
|
||||||
return tree.getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract void buildContextMenu(Activity activity, ContextMenu menu, NetworkTree tree);
|
public abstract void buildContextMenu(Activity activity, ContextMenu menu, NetworkTree tree);
|
||||||
|
|
||||||
public abstract int getDefaultActionCode(NetworkBaseActivity activity, NetworkTree tree);
|
public abstract int getDefaultActionCode(NetworkBaseActivity activity, NetworkTree tree);
|
||||||
|
|
|
@ -37,15 +37,6 @@ class SearchItemActions extends NetworkTreeActions {
|
||||||
return tree instanceof SearchItemTree;
|
return tree instanceof SearchItemTree;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getTreeTitle(NetworkTree tree) {
|
|
||||||
final SearchResult result = ((SearchItemTree)tree).getSearchResult();
|
|
||||||
if (result != null) {
|
|
||||||
return result.Summary;
|
|
||||||
}
|
|
||||||
return tree.getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void buildContextMenu(Activity activity, ContextMenu menu, NetworkTree tree) {
|
public void buildContextMenu(Activity activity, ContextMenu menu, NetworkTree tree) {
|
||||||
menu.setHeaderTitle(tree.getName());
|
menu.setHeaderTitle(tree.getName());
|
||||||
|
|
|
@ -29,15 +29,13 @@ import org.geometerplus.android.util.UIUtil;
|
||||||
|
|
||||||
import org.geometerplus.fbreader.tree.FBTree;
|
import org.geometerplus.fbreader.tree.FBTree;
|
||||||
|
|
||||||
public abstract class BaseActivity extends ListActivity implements View.OnCreateContextMenuListener {
|
public abstract class BaseActivity extends ListActivity {
|
||||||
private FBTree myCurrentTree;
|
private FBTree myCurrentTree;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
Thread.setDefaultUncaughtExceptionHandler(new org.geometerplus.zlibrary.ui.android.library.UncaughtExceptionHandler(this));
|
Thread.setDefaultUncaughtExceptionHandler(new org.geometerplus.zlibrary.ui.android.library.UncaughtExceptionHandler(this));
|
||||||
|
|
||||||
getListView().setOnCreateContextMenuListener(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -53,7 +51,6 @@ public abstract class BaseActivity extends ListActivity implements View.OnCreate
|
||||||
myCurrentTree = tree;
|
myCurrentTree = tree;
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract int getCoverResourceId(FBTree tree);
|
|
||||||
public abstract boolean isTreeSelected(FBTree tree);
|
public abstract boolean isTreeSelected(FBTree tree);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2010-2011 Geometer Plus <contact@geometerplus.com>
|
|
||||||
*
|
|
||||||
* 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.tree;
|
|
||||||
|
|
||||||
public interface ZLAndroidTree {
|
|
||||||
int getCoverResourceId();
|
|
||||||
}
|
|
|
@ -25,4 +25,9 @@ public class NetworkCatalogRootTree extends NetworkCatalogTree {
|
||||||
public NetworkCatalogRootTree(RootTree parent, INetworkLink link, int position) {
|
public NetworkCatalogRootTree(RootTree parent, INetworkLink link, int position) {
|
||||||
super(parent, (NetworkCatalogItem)link.libraryItem(), position);
|
super(parent, (NetworkCatalogItem)link.libraryItem(), position);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTreeTitle() {
|
||||||
|
return getName();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,6 +53,11 @@ public class NetworkCatalogTree extends NetworkTree {
|
||||||
return summary != null ? summary.toString() : "";
|
return summary != null ? summary.toString() : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTreeTitle() {
|
||||||
|
return getName() + " - " + Item.Link.getSiteName();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ZLImage createCover() {
|
protected ZLImage createCover() {
|
||||||
return createCover(Item);
|
return createCover(Item);
|
||||||
|
|
|
@ -46,6 +46,14 @@ public class SearchItemTree extends NetworkTree {
|
||||||
return ZLResource.resource("networkView").getResource("searchSummary").getValue();
|
return ZLResource.resource("networkView").getResource("searchSummary").getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTreeTitle() {
|
||||||
|
if (myResult != null) {
|
||||||
|
return myResult.Summary;
|
||||||
|
}
|
||||||
|
return getName();
|
||||||
|
}
|
||||||
|
|
||||||
public void setSearchResult(SearchResult result) {
|
public void setSearchResult(SearchResult result) {
|
||||||
myResult = result;
|
myResult = result;
|
||||||
clear();
|
clear();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue