package com.masterofcode.android.magreader.adapters; import java.util.List; import android.app.Activity; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.masterofcode.android.magreader.db.entity.LibraryItem; import com.masterofcode.android.magreader.utils.ApplicationUtils; import com.masterofcode.android.magreader.utils.ImageLoader; import com.sandsmedia.apps.mobile.android.epub.lib.R; public class GridOfLibraryItemsAdapter extends BaseAdapter { private Context mContext; private List<LibraryItem> issues; private LayoutInflater inflater; private int inc = 0; private ImageLoader imageLoader; public GridOfLibraryItemsAdapter(Context mContext, List<LibraryItem> issues, Activity activity){ this.mContext = mContext; this.issues = issues; imageLoader = new ImageLoader(mContext, activity); inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public static class ViewHolder{ public TextView issueDate; public TextView issuePrice; public ImageView issueImage; } @Override public int getCount() { // TODO Auto-generated method stub int numColumn = 0; int remainder = 0; if (ApplicationUtils.isLandscape(mContext)){ numColumn = (ApplicationUtils.getCurrentScreenWidth(mContext) + 14) / 220; remainder = issues.size() % numColumn; if (remainder == 0){ inc = 0; } else { inc = numColumn - remainder; } } else { numColumn = (ApplicationUtils.getCurrentScreenWidth(mContext) + 14) / 220; remainder = issues.size() % numColumn; if (remainder == 0){ inc = 0; } else { inc = numColumn - remainder; } } return issues.size() + inc; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View v = convertView; ViewHolder holder; //try to inflate the view if(v == null) { try { v = inflater.inflate(R.layout.shop_grid_item, null); } catch (NullPointerException npe) { npe.printStackTrace(); } holder = new ViewHolder(); holder.issueDate = (TextView) v.findViewById(R.id.dateTextView); holder.issuePrice = (TextView) v.findViewById(R.id.priceTextView); holder.issueImage = (ImageView) v.findViewById(R.id.issue_image); v.setTag(holder); } else holder = (ViewHolder)v.getTag(); if (position < issues.size()){ LibraryItem issue = issues.get(position); Log.i("MagazineReader", "loaded libray item with id: " + issue.magazine_id); if (holder.issueDate != null) { if ((issue.magazine_title != null) && (issue.magazine_title != "")) { holder.issueDate.setText(issue.magazine_title); } } if (holder.issuePrice != null) { if (!issue.isDownloaded){ holder.issuePrice.setText("DOWNLOAD"); } else{ holder.issuePrice.setText("READ"); } }; if (holder.issueImage != null) { holder.issueImage.setImageDrawable(null); if(issue.magazine_cover_filepath!=null) { String url = "file://"+issue.magazine_cover_filepath; holder.issueImage.setTag(url); imageLoader.displayImage( url, holder.issueImage); } } } else { try { holder.issueImage.setVisibility(View.GONE); holder.issueDate.setVisibility(View.GONE); holder.issuePrice.setVisibility(View.GONE); } catch (NullPointerException npe) { npe.printStackTrace(); } } return v; } }