X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fandroid%2FAndroidReaderBook.java;h=700a566938627d06ce8d66e723a6c97c1b56d036;hb=410f1eaefe49d6b7fc02ae9e3b5d4856d51cfecf;hp=5d3f65daf1a1859530466bad54bc04a56f06e6a8;hpb=649684189468206b46778bbc18d8bb47e66f7be1;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/reader/android/AndroidReaderBook.java b/src/be/nikiroo/fanfix/reader/android/AndroidReaderBook.java index 5d3f65d..700a566 100644 --- a/src/be/nikiroo/fanfix/reader/android/AndroidReaderBook.java +++ b/src/be/nikiroo/fanfix/reader/android/AndroidReaderBook.java @@ -14,16 +14,13 @@ import android.widget.TextView; import java.io.IOException; -import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.data.MetaData; import be.nikiroo.fanfix.reader.Reader; import be.nikiroo.utils.Image; import be.nikiroo.utils.android.ImageUtilsAndroid; public class AndroidReaderBook extends Fragment { - private Reader reader; private OnFragmentInteractionListener listener; - private MetaData meta; /** * This interface must be implemented by activities that contain this @@ -63,56 +60,63 @@ public class AndroidReaderBook extends Fragment { listener = null; } - public void fill(final Reader reader, final String luid) { - View view = getView(); - if (view == null) { - return; - } - - final ImageView cover = view.findViewById(R.id.cover); - final TextView title = view.findViewById(R.id.title); - final FrameLayout frame = view.findViewById(R.id.coverWidget); + public void fill(final MetaData meta, final Reader reader) { + ViewHolder viewHolder = new ViewHolder(getView()); - new AsyncTask() { + viewHolder.title.setText(meta.getTitle()); + viewHolder.author.setText(meta.getAuthor()); + viewHolder.frame.setClickable(true); + viewHolder.frame.setFocusable(true); + viewHolder.frame.setOnClickListener(new View.OnClickListener() { @Override - protected MetaData doInBackground(Void[] objects) { - return Instance.getLibrary().getInfo(luid); + public void onClick(View v) { + OnFragmentInteractionListener llistener = listener; + if (llistener != null) { + llistener.onFragmentInteraction(meta); + } } + }); + new AsyncTask() { @Override - protected void onPostExecute(MetaData meta) { - AndroidReaderBook.this.meta = meta; - - if (meta != null) { - title.setText(meta.getTitle()); - try { - Image coverImage = reader.getLibrary().getCover( - meta.getLuid()); - if (coverImage != null) { - Bitmap coverBitmap = ImageUtilsAndroid - .fromImage(coverImage); - coverBitmap = Bitmap.createScaledBitmap( - coverBitmap, 128, 128, true); - cover.setImageBitmap(coverBitmap); - } - } catch (IOException e) { - e.printStackTrace(); - } + protected Image doInBackground(MetaData[] metas) { + if (metas[0].getCover() != null) { + return metas[0].getCover(); } - frame.setClickable(true); - frame.setFocusable(true); - frame.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - OnFragmentInteractionListener llistener = listener; - if (llistener != null) { - llistener - .onFragmentInteraction(AndroidReaderBook.this.meta); - } + return reader.getLibrary().getCover(metas[0].getLuid()); + } + + @Override + protected void onPostExecute(Image coverImage) { + ViewHolder viewHolder = new ViewHolder(getView()); + + try { + if (coverImage != null) { + Bitmap coverBitmap = ImageUtilsAndroid + .fromImage(coverImage); + coverBitmap = Bitmap.createScaledBitmap(coverBitmap, + 128, 128, true); + viewHolder.cover.setImageBitmap(coverBitmap); } - }); + } catch (IOException e) { + e.printStackTrace(); + } } - }.execute(); + }.execute(meta); + } + + private class ViewHolder { + public FrameLayout frame; + public TextView title; + public TextView author; + public ImageView cover; + + public ViewHolder(View book) { + frame = book.findViewById(R.id.Book); + title = book.findViewById(R.id.Book_lblTitle); + author = book.findViewById(R.id.Book_lblAuthor); + cover = book.findViewById(R.id.Book_imgCover); + } } }