diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index aa9d58c0a..3e4c0a86f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -77,13 +77,16 @@
+
+
+
-
+
diff --git a/AndroidManifest.xml.pattern b/AndroidManifest.xml.pattern
index ed928bbcf..8a9fa5bf7 100644
--- a/AndroidManifest.xml.pattern
+++ b/AndroidManifest.xml.pattern
@@ -77,6 +77,9 @@
+
+
+
diff --git a/assets/resources/application/en.xml b/assets/resources/application/en.xml
index 5ac2cd4d3..832e1dd60 100644
--- a/assets/resources/application/en.xml
+++ b/assets/resources/application/en.xml
@@ -6,10 +6,21 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/layout/library_ng_tree_item.xml b/res/layout/library_ng_tree_item.xml
new file mode 100644
index 000000000..f0a630e93
--- /dev/null
+++ b/res/layout/library_ng_tree_item.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/org/geometerplus/android/fbreader/ShowLibraryAction.java b/src/org/geometerplus/android/fbreader/ShowLibraryAction.java
index af4192c2c..e037822fe 100644
--- a/src/org/geometerplus/android/fbreader/ShowLibraryAction.java
+++ b/src/org/geometerplus/android/fbreader/ShowLibraryAction.java
@@ -27,6 +27,8 @@ import org.geometerplus.fbreader.fbreader.FBAction;
import org.geometerplus.fbreader.fbreader.FBReaderApp;
import org.geometerplus.fbreader.bookmodel.BookModel;
+import org.geometerplus.android.fbreader.library.LibraryBaseActivity;
+
class ShowLibraryAction extends FBAction {
private final FBReader myBaseActivity;
@@ -37,9 +39,9 @@ class ShowLibraryAction extends FBAction {
public void run() {
final BookModel model = Reader.Model;
- Intent intent = new Intent(myBaseActivity.getApplicationContext(), LibraryTabActivity.class);
+ Intent intent = new Intent(myBaseActivity.getApplicationContext(), LibraryBaseActivity.class);
if (model != null && model.Book != null) {
- intent.putExtra(LibraryTabActivity.CURRENT_BOOK_PATH_KEY, model.Book.File.getPath());
+ //intent.putExtra(LibraryBaseActivity.CURRENT_BOOK_PATH_KEY, model.Book.File.getPath());
}
myBaseActivity.startActivity(intent);
}
diff --git a/src/org/geometerplus/android/fbreader/library/LibraryBaseActivity.java b/src/org/geometerplus/android/fbreader/library/LibraryBaseActivity.java
index afcf2a941..264d0fdd9 100644
--- a/src/org/geometerplus/android/fbreader/library/LibraryBaseActivity.java
+++ b/src/org/geometerplus/android/fbreader/library/LibraryBaseActivity.java
@@ -19,46 +19,130 @@
package org.geometerplus.android.fbreader.library;
+import java.util.ArrayList;
+
import android.app.ListActivity;
import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
+import android.view.*;
+import android.widget.*;
-import org.geometerplus.fbreader.library.LibraryTree;
+import org.geometerplus.zlibrary.core.resources.ZLResource;
+
+import org.geometerplus.fbreader.tree.FBTree;
+
+import org.geometerplus.zlibrary.ui.android.R;
+
+public class LibraryBaseActivity extends ListActivity {
+ private final ZLResource myResource = ZLResource.resource("libraryView");
-abstract class LibraryBaseActivity extends ListActivity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
+ setListAdapter(new LibraryAdapter());
+ }
+
+ @Override
+ public void onListItemClick(ListView listView, View view, int position, long rowId) {
}
private final class LibraryAdapter extends BaseAdapter {
+ private final ArrayList myItems = new ArrayList();
+
+ public LibraryAdapter() {
+ myItems.add(new TopLevelTree(myResource.getResource("searchResults")));
+ myItems.add(new TopLevelTree(myResource.getResource("recent")));
+ myItems.add(new TopLevelTree(myResource.getResource("byAuthor")));
+ myItems.add(new TopLevelTree(myResource.getResource("byTag")));
+ myItems.add(new TopLevelTree(myResource.getResource("fileTree")));
+ }
+
+ @Override
public final int getCount() {
- return 4;
+ return myItems.size();
}
- public final LibraryTree getItem(int position) {
- switch (position) {
- case 0:
- return null;
- case 1:
- return null;
- case 2:
- return null;
- case 3:
- return null;
- }
- return null;
+ @Override
+ public final FBTree getItem(int position) {
+ return myItems.get(position);
}
+ @Override
public final long getItemId(int position) {
return position;
}
+ //private ZLImage myFBReaderIcon =
+ // ZLAndroidLibrary.Instance().createImage(R.drawable.fbreader);
+
+ private int myCoverWidth = -1;
+ private int myCoverHeight = -1;
+
+ @Override
public View getView(int position, View convertView, final ViewGroup parent) {
- final LibraryTree tree = getItem(position);
- return convertView;//setupNetworkTreeItemView(convertView, parent, tree);
+ final FBTree tree = getItem(position);
+ final View view = (convertView != null) ? convertView :
+ LayoutInflater.from(parent.getContext()).inflate(R.layout.library_ng_tree_item, parent, false);
+
+ ((TextView)view.findViewById(R.id.library_ng_tree_item_name)).setText(tree.getName());
+ ((TextView)view.findViewById(R.id.library_ng_tree_item_childrenlist)).setText(tree.getSecondString());
+
+ if (myCoverWidth == -1) {
+ view.measure(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ myCoverHeight = view.getMeasuredHeight();
+ myCoverWidth = myCoverHeight * 15 / 32;
+ view.requestLayout();
+ }
+
+ final ImageView coverView = (ImageView)view.findViewById(R.id.library_ng_tree_item_icon);
+ coverView.getLayoutParams().width = myCoverWidth;
+ coverView.getLayoutParams().height = myCoverHeight;
+ coverView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
+ coverView.requestLayout();
+ coverView.setImageResource(R.drawable.fbreader);
+ //setupCover(coverView, tree, myCoverWidth, myCoverWidth);
+
+ return view;
}
}
+
+ /*
+ private void setupCover(final ImageView coverView, FBTree tree, int width, int height) {
+ Bitmap coverBitmap = null;
+ ZLImage cover = tree.getCover();
+ if (cover == null) {
+ cover = myFBReaderIcon;
+ }
+ if (cover != null) {
+ ZLAndroidImageData data = null;
+ final ZLAndroidImageManager mgr = (ZLAndroidImageManager) ZLAndroidImageManager.Instance();
+ data = mgr.getImageData(cover);
+ if (data != null) {
+ coverBitmap = data.getBitmap(2 * width, 2 * height);
+ }
+ }
+ if (coverBitmap != null) {
+ coverView.setImageBitmap(coverBitmap);
+ } else {
+ coverView.setImageDrawable(null);
+ }
+ }
+ */
+}
+
+class TopLevelTree extends FBTree {
+ private final ZLResource myResource;
+
+ public TopLevelTree(ZLResource resource) {
+ myResource = resource;
+ }
+
+ @Override
+ public String getName() {
+ return myResource.getValue();
+ }
+
+ @Override
+ public String getSummary() {
+ return myResource.getResource("summary").getValue();
+ }
}
diff --git a/src/org/geometerplus/android/fbreader/network/NetworkBaseActivity.java b/src/org/geometerplus/android/fbreader/network/NetworkBaseActivity.java
index ce7885610..91b464dff 100644
--- a/src/org/geometerplus/android/fbreader/network/NetworkBaseActivity.java
+++ b/src/org/geometerplus/android/fbreader/network/NetworkBaseActivity.java
@@ -111,15 +111,10 @@ abstract class NetworkBaseActivity extends ListActivity
// this set is used to track whether this activity will be notified, when specific cover will be synchronized.
private HashSet myAwaitedCovers = new HashSet();
- private ZLImage myFBReaderIcon =
- ((ZLAndroidLibrary)ZLAndroidLibrary.Instance()).createImage(R.drawable.fbreader);
private void setupCover(final ImageView coverView, NetworkTree tree, int width, int height) {
Bitmap coverBitmap = null;
ZLImage cover = tree.getCover();
- if (cover == null) {
- cover = myFBReaderIcon;
- }
if (cover != null) {
ZLAndroidImageData data = null;
final ZLAndroidImageManager mgr = (ZLAndroidImageManager) ZLAndroidImageManager.Instance();
@@ -154,7 +149,7 @@ abstract class NetworkBaseActivity extends ListActivity
if (coverBitmap != null) {
coverView.setImageBitmap(coverBitmap);
} else {
- coverView.setImageDrawable(null);
+ coverView.setImageResource(R.drawable.fbreader);
}
}
@@ -177,6 +172,7 @@ abstract class NetworkBaseActivity extends ListActivity
final ImageView coverView = (ImageView)view.findViewById(R.id.network_tree_item_icon);
coverView.getLayoutParams().width = myCoverWidth;
+ coverView.getLayoutParams().height = myCoverHeight;
coverView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
coverView.requestLayout();
setupCover(coverView, tree, myCoverWidth, myCoverWidth);