1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-06 03:50:19 +02:00

code cleanup: ListAdapter doesnot depend on library code

This commit is contained in:
Nikolay Pultsin 2011-07-14 11:22:44 +01:00
parent 63e99307bd
commit 6cbc5fd2bd
2 changed files with 12 additions and 20 deletions

View file

@ -43,7 +43,7 @@ import org.geometerplus.android.fbreader.FBReader;
import org.geometerplus.android.fbreader.BookInfoActivity; import org.geometerplus.android.fbreader.BookInfoActivity;
import org.geometerplus.android.fbreader.SQLiteBooksDatabase; import org.geometerplus.android.fbreader.SQLiteBooksDatabase;
abstract class BaseActivity extends ListActivity { abstract class BaseActivity extends ListActivity implements View.OnCreateContextMenuListener {
private static class FBTreeInfo { private static class FBTreeInfo {
final int CoverResourceId; final int CoverResourceId;
final Runnable Action; final Runnable Action;
@ -111,6 +111,7 @@ abstract class BaseActivity extends ListActivity {
} }
setResult(RESULT_DONT_INVALIDATE_VIEWS); setResult(RESULT_DONT_INVALIDATE_VIEWS);
getListView().setOnCreateContextMenuListener(this);
} }
@Override @Override
@ -236,7 +237,15 @@ abstract class BaseActivity extends ListActivity {
); );
} }
protected void createBookContextMenu(ContextMenu menu, Book book) { public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {
final int position = ((AdapterView.AdapterContextMenuInfo)menuInfo).position;
final Book book = ((LibraryTree)getListAdapter().getItem(position)).getBook();
if (book != null) {
createBookContextMenu(menu, book);
}
}
private void createBookContextMenu(ContextMenu menu, Book book) {
final ZLResource resource = Library.resource(); final ZLResource resource = Library.resource();
menu.setHeaderTitle(book.getTitle()); menu.setHeaderTitle(book.getTitle());
menu.add(0, OPEN_BOOK_ITEM_ID, 0, resource.getResource("openBook").getValue()); menu.add(0, OPEN_BOOK_ITEM_ID, 0, resource.getResource("openBook").getValue());

View file

@ -33,11 +33,8 @@ 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.Book;
import org.geometerplus.fbreader.library.BookTree;
import org.geometerplus.fbreader.library.FileTree;
public class ListAdapter extends BaseAdapter implements View.OnCreateContextMenuListener { public class ListAdapter extends BaseAdapter {
private final BaseActivity myActivity; private final BaseActivity myActivity;
private final List<FBTree> myItems; private final List<FBTree> myItems;
@ -45,7 +42,6 @@ public class ListAdapter extends BaseAdapter implements View.OnCreateContextMenu
myActivity = activity; myActivity = activity;
myItems = Collections.synchronizedList(items); myItems = Collections.synchronizedList(items);
activity.setListAdapter(this); activity.setListAdapter(this);
activity.getListView().setOnCreateContextMenuListener(this);
} }
public void clear() { public void clear() {
@ -193,17 +189,4 @@ public class ListAdapter extends BaseAdapter implements View.OnCreateContextMenu
return view; return view;
} }
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {
final int position = ((AdapterView.AdapterContextMenuInfo)menuInfo).position;
final FBTree tree = getItem(position);
if (tree instanceof BookTree) {
myActivity.createBookContextMenu(menu, ((BookTree)tree).Book);
} else if (tree instanceof FileTree) {
final Book book = ((FileTree)getItem(position)).getBook();
if (book != null) {
myActivity.createBookContextMenu(menu, book);
}
}
}
} }