1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-05 10:49:24 +02:00

code simplification

This commit is contained in:
Nikolay Pultsin 2011-07-16 11:18:26 +01:00
parent 6c38d394f5
commit bfcbee56dd
6 changed files with 36 additions and 47 deletions

View file

@ -68,11 +68,6 @@ public class LibraryActivity extends BaseActivity implements MenuItem.OnMenuItem
startService(new Intent(getApplicationContext(), InitializationService.class)); startService(new Intent(getApplicationContext(), InitializationService.class));
} }
final FBTree.Key key = (FBTree.Key)getIntent().getSerializableExtra(TREE_KEY_KEY);
setCurrentTree(getTreeByKey(key));
setTitle(getCurrentTree().getTreeTitle());
final String selectedBookPath = getIntent().getStringExtra(SELECTED_BOOK_PATH_KEY); final String selectedBookPath = getIntent().getStringExtra(SELECTED_BOOK_PATH_KEY);
mySelectedBook = null; mySelectedBook = null;
if (selectedBookPath != null) { if (selectedBookPath != null) {
@ -82,8 +77,9 @@ public class LibraryActivity extends BaseActivity implements MenuItem.OnMenuItem
} }
} }
final ListAdapter adapter = new LibraryListAdapter(this, getCurrentTree().subTrees()); final ListAdapter adapter = new LibraryListAdapter(this);
setSelection(adapter.getIndex(adapter.getFirstSelectedItem())); init(getIntent());
getListView().setTextFilterEnabled(true); getListView().setTextFilterEnabled(true);
getListView().setOnCreateContextMenuListener(this); getListView().setOnCreateContextMenuListener(this);

View file

@ -33,15 +33,14 @@ 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.library.*; 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;
class LibraryListAdapter extends ListAdapter { class LibraryListAdapter extends ListAdapter {
LibraryListAdapter(BaseActivity activity, List<FBTree> items) { LibraryListAdapter(BaseActivity activity) {
super(activity, items); super(activity);
} }
private Bitmap getCoverBitmap(ZLImage cover) { private Bitmap getCoverBitmap(ZLImage cover) {
@ -88,18 +87,18 @@ class LibraryListAdapter extends ListAdapter {
return coverView; return coverView;
} }
private View createView(View convertView, ViewGroup parent, FBTree item) { private View createView(View convertView, ViewGroup parent, LibraryTree tree) {
final View view = (convertView != null) ? convertView : final View view = (convertView != null) ? convertView :
LayoutInflater.from(parent.getContext()).inflate(R.layout.library_tree_item, parent, false); LayoutInflater.from(parent.getContext()).inflate(R.layout.library_tree_item, parent, false);
((TextView)view.findViewById(R.id.library_tree_item_name)).setText(item.getName()); ((TextView)view.findViewById(R.id.library_tree_item_name)).setText(tree.getName());
((TextView)view.findViewById(R.id.library_tree_item_childrenlist)).setText(item.getSecondString()); ((TextView)view.findViewById(R.id.library_tree_item_childrenlist)).setText(tree.getSecondString());
return view; return view;
} }
@Override @Override
public View getView(int position, View convertView, final ViewGroup parent) { public View getView(int position, View convertView, final ViewGroup parent) {
final FBTree tree = getItem(position); final LibraryTree tree = (LibraryTree)getItem(position);
final View view = createView(convertView, parent, tree); final View view = createView(convertView, parent, tree);
if (getActivity().isTreeSelected(tree)) { if (getActivity().isTreeSelected(tree)) {
view.setBackgroundColor(0xff555555); view.setBackgroundColor(0xff555555);
@ -118,8 +117,8 @@ class LibraryListAdapter extends ListAdapter {
return view; return view;
} }
private int getCoverResourceId(FBTree tree) { private int getCoverResourceId(LibraryTree tree) {
if (((LibraryTree)tree).getBook() != null) { if (tree.getBook() != null) {
return R.drawable.ic_list_library_book; return R.drawable.ic_list_library_book;
} else if (tree instanceof FirstLevelTree) { } else if (tree instanceof FirstLevelTree) {
final String id = tree.getUniqueKey().Id; final String id = tree.getUniqueKey().Id;

View file

@ -66,12 +66,6 @@ public class NetworkBaseActivity extends BaseActivity implements NetworkView.Eve
private volatile boolean myInProgress; private volatile boolean myInProgress;
@Override
protected FBTree getTreeByKey(FBTree.Key key) {
final NetworkLibrary library = NetworkLibrary.Instance();
return key != null ? library.getTreeByKey(key) : library.getRootTree();
}
@Override @Override
public void onCreate(Bundle icicle) { public void onCreate(Bundle icicle) {
super.onCreate(icicle); super.onCreate(icicle);
@ -89,13 +83,8 @@ public class NetworkBaseActivity extends BaseActivity implements NetworkView.Eve
BIND_AUTO_CREATE BIND_AUTO_CREATE
); );
NetworkTree tree = Util.getTreeFromIntent(getIntent()); setListAdapter(new NetworkLibraryAdapter(this));
if (tree == null) { init(getIntent());
tree = NetworkLibrary.Instance().getRootTree();
}
setCurrentTree(tree);
setListAdapter(new NetworkLibraryAdapter(this, tree.subTrees()));
setTitle(tree.getTreeTitle());
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
@ -104,6 +93,12 @@ public class NetworkBaseActivity extends BaseActivity implements NetworkView.Eve
setProgressBarIndeterminateVisibility(myInProgress); setProgressBarIndeterminateVisibility(myInProgress);
} }
@Override
protected FBTree getTreeByKey(FBTree.Key key) {
final NetworkLibrary library = NetworkLibrary.Instance();
return key != null ? library.getTreeByKey(key) : library.getRootTree();
}
@Override @Override
protected void onStart() { protected void onStart() {
super.onStart(); super.onStart();

View file

@ -34,15 +34,14 @@ import org.geometerplus.zlibrary.core.image.ZLLoadableImage;
import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageManager; 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.fbreader.tree.FBTree;
import org.geometerplus.fbreader.network.NetworkTree; import org.geometerplus.fbreader.network.NetworkTree;
import org.geometerplus.fbreader.network.tree.*; import org.geometerplus.fbreader.network.tree.*;
import org.geometerplus.android.fbreader.tree.ListAdapter; import org.geometerplus.android.fbreader.tree.ListAdapter;
class NetworkLibraryAdapter extends ListAdapter { class NetworkLibraryAdapter extends ListAdapter {
NetworkLibraryAdapter(NetworkBaseActivity activity, List<FBTree> items) { NetworkLibraryAdapter(NetworkBaseActivity activity) {
super(activity, items); super(activity);
} }
private int myCoverWidth = -1; private int myCoverWidth = -1;

View file

@ -52,10 +52,6 @@ public abstract class BaseActivity extends ListActivity {
return myCurrentTree; return myCurrentTree;
} }
protected void setCurrentTree(FBTree tree) {
myCurrentTree = tree;
}
public abstract boolean isTreeSelected(FBTree tree); public abstract boolean isTreeSelected(FBTree tree);
protected boolean OLD_STYLE_FLAG = false; protected boolean OLD_STYLE_FLAG = false;
@ -113,6 +109,13 @@ public abstract class BaseActivity extends ListActivity {
@Override @Override
protected void onNewIntent(Intent intent) { protected void onNewIntent(Intent intent) {
if (OPEN_TREE_ACTION.equals(intent.getAction())) { if (OPEN_TREE_ACTION.equals(intent.getAction())) {
init(intent);
} else {
super.onNewIntent(intent);
}
}
protected void init(Intent intent) {
final FBTree.Key key = (FBTree.Key)intent.getSerializableExtra(TREE_KEY_KEY); final FBTree.Key key = (FBTree.Key)intent.getSerializableExtra(TREE_KEY_KEY);
final FBTree.Key selectedKey = (FBTree.Key)intent.getSerializableExtra(SELECTED_TREE_KEY_KEY); final FBTree.Key selectedKey = (FBTree.Key)intent.getSerializableExtra(SELECTED_TREE_KEY_KEY);
myCurrentTree = getTreeByKey(key); myCurrentTree = getTreeByKey(key);
@ -122,9 +125,6 @@ public abstract class BaseActivity extends ListActivity {
final FBTree selectedTree = final FBTree selectedTree =
selectedKey != null ? getTreeByKey(selectedKey) : adapter.getFirstSelectedItem(); selectedKey != null ? getTreeByKey(selectedKey) : adapter.getFirstSelectedItem();
setSelection(adapter.getIndex(selectedTree)); setSelection(adapter.getIndex(selectedTree));
} else {
super.onNewIntent(intent);
}
} }
private void openTreeInternal(FBTree tree, FBTree treeToSelect) { private void openTreeInternal(FBTree tree, FBTree treeToSelect) {

View file

@ -29,9 +29,9 @@ public abstract class ListAdapter extends BaseAdapter {
private final BaseActivity myActivity; private final BaseActivity myActivity;
private final List<FBTree> myItems; private final List<FBTree> myItems;
protected ListAdapter(BaseActivity activity, List<FBTree> items) { protected ListAdapter(BaseActivity activity) {
myActivity = activity; myActivity = activity;
myItems = Collections.synchronizedList(new ArrayList<FBTree>(items)); myItems = Collections.synchronizedList(new ArrayList<FBTree>());
activity.setListAdapter(this); activity.setListAdapter(this);
} }