remove android files
[fanfix.git] / src / be / nikiroo / fanfix / reader / android / AndroidReaderGroup.java
index d998a8cf9c40b947226f0995d489052a957fc137..2d4819942a7d7b83c67fe645bb149b1015049004 100644 (file)
@@ -3,13 +3,17 @@ package be.nikiroo.fanfix.reader.android;
 import android.app.Fragment;
 import android.app.FragmentTransaction;
 import android.content.Context;
-import android.os.AsyncTask;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ListView;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import be.nikiroo.fanfix.data.MetaData;
 import be.nikiroo.fanfix.reader.Reader;
@@ -21,6 +25,7 @@ import be.nikiroo.fanfix.reader.Reader;
  */
 public class AndroidReaderGroup extends Fragment {
        private OnFragmentInteractionListener listener;
+       private Map<View, AndroidReaderBook> books = new HashMap<View, AndroidReaderBook>();
 
        public interface OnFragmentInteractionListener {
                void onFragmentInteraction(MetaData meta);
@@ -33,7 +38,6 @@ public class AndroidReaderGroup extends Fragment {
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                        Bundle savedInstanceState) {
-               // Inflate the layout for this fragment
                return inflater.inflate(R.layout.fragment_android_reader_group,
                                container, false);
        }
@@ -52,31 +56,46 @@ public class AndroidReaderGroup extends Fragment {
                listener = null;
        }
 
-       public void fill(final Reader reader, final String source) {
-               new AsyncTask<Void, Void, List<MetaData>>() {
+       public void fill(final List<MetaData> metas, final Reader reader) {
+               final List<MetaData> datas = new ArrayList<MetaData>(metas);
+
+               ListView list = getView().findViewById(R.id.Group_root);
+               list.setAdapter(new BaseAdapter() {
+                       @Override
+                       public int getCount() {
+                               return datas.size();
+                       }
+
                        @Override
-                       protected List<MetaData> doInBackground(Void... voids) {
-                               return reader.getLibrary().getListBySource(source);
+                       public long getItemId(int position) {
+                               return -1; // TODO: what is a "row id" in this context?
                        }
 
                        @Override
-                       protected void onPostExecute(List<MetaData> metas) {
-                               for (MetaData meta : metas) {
-                                       String tag = "Book_" + meta.getLuid();
-                                       tag = null; // TODO: how does it work?
-                                       AndroidReaderBook book = null;// (AndroidReaderBook)
-                                                                                                       // getFragmentManager().findFragmentByTag(tag);
-                                       if (book == null) {
-                                               book = new AndroidReaderBook();
-                                               FragmentTransaction trans = getFragmentManager()
-                                                               .beginTransaction();
-                                               trans.add(R.id.AndroidReaderGroup_root, book, tag);
-                                               trans.commit();
-                                               getFragmentManager().executePendingTransactions();
-                                       }
-                                       book.fill(reader, meta.getLuid());
+                       public Object getItem(int position) {
+                               return datas.get(position);
+                       }
+
+                       @Override
+                       public View getView(int position, View convertView, ViewGroup parent) {
+                               AndroidReaderBook book = books.get(convertView);
+                               if (book == null) {
+                                       book = new AndroidReaderBook();
+
+                                       FragmentTransaction trans = getFragmentManager()
+                                                       .beginTransaction();
+                                       trans.add(book, null);
+                                       trans.commit();
+                                       getFragmentManager().executePendingTransactions();
+
+                                       books.put(book.getView(), book);
                                }
+
+                               MetaData meta = (MetaData) getItem(position);
+                               book.fill(meta, reader);
+
+                               return book.getView();
                        }
-               }.execute();
+               });
        }
 }