package epson.print.imgsel; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; 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 java.io.File; import java.util.ArrayList; import java.util.List; import epson.print.R; public class ImageFolderAdapter extends BaseAdapter { private List mFolderList = new ArrayList(); private LayoutInflater mLayoutInflater; private Resources mResources; public long getItemId(int i) { return 0; } public int getCount() { return mFolderList.size(); } public Object getItem(int i) { return mFolderList.get(i); } public View getView(int i, View view, ViewGroup viewGroup) { if (view == null) { view = mLayoutInflater.inflate(R.layout.listitem_image_folder, viewGroup, false); } TextView textView = (TextView) view.findViewById(R.id.folderNameText); FolderInfoAndThumbnail folderInfoAndThumbnail = mFolderList.get(i); if (folderInfoAndThumbnail == null) { return view; } textView.setText(new File(folderInfoAndThumbnail.mImageFolderInfo.mCanonicalName).getName()); ((TextView) view.findViewById(R.id.imageVolumeText)).setText(mResources.getString(R.string.memcard_file_num_format, new Object[]{Integer.valueOf(folderInfoAndThumbnail.mImageFolderInfo.getImageCount())})); ImageView imageView = (ImageView) view.findViewById(R.id.imageView); if (folderInfoAndThumbnail.mBitmap != null) { imageView.setImageBitmap(folderInfoAndThumbnail.mBitmap); } else { imageView.setImageResource(R.drawable.ic_action_warning); } return view; } public ImageFolderAdapter(Context context) { mLayoutInflater = LayoutInflater.from(context); mResources = context.getResources(); } public void addItem(ImageFolderInfo imageFolderInfo, Bitmap bitmap) { mFolderList.add(new FolderInfoAndThumbnail(imageFolderInfo, bitmap)); notifyDataSetChanged(); } public ImageFolderInfo getFolderInfo(int i) { return mFolderList.get(i).mImageFolderInfo; } public void releaseResource() { for (FolderInfoAndThumbnail next : mFolderList) { if (next.mBitmap != null) { next.mBitmap.recycle(); next.mBitmap = null; } } mFolderList.clear(); } static class FolderInfoAndThumbnail { public Bitmap mBitmap; public ImageFolderInfo mImageFolderInfo; public FolderInfoAndThumbnail(ImageFolderInfo imageFolderInfo, Bitmap bitmap) { mImageFolderInfo = imageFolderInfo; mBitmap = bitmap; } } }