/**
* Copyright (c) 2015 unfoldingWord
* http://creativecommons.org/licenses/MIT/
* See LICENSE file for details.
* Contributors:
* PJ Fechner <pj@actsmedia.com>
*/
package adapters.selectionAdapters;
import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import org.unfoldingword.mobile.R;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import model.daoModels.StoriesChapter;
import utils.FileNameHelper;
import view.ASyncImageView;
import view.ViewContentHelper;
/**
* Created by PJ Fechner
* Adapter for showing OBS Chapters
*/
public class StoriesChapterAdapter extends ArrayAdapter<StoriesChapter>{
private Context context;
private int selectedPosition;
public StoriesChapterAdapter(Context context, List<StoriesChapter> list, int selectedPosition) {
super(context, R.layout.row_for_frames, list);
this.context = context;
this.selectedPosition = selectedPosition;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.row_for_frames, parent, false);
holder = new ViewHolder();
holder.chapterNameTextView = (TextView) convertView.findViewById(R.id.chapterNametextView);
holder.referenceTextView = (TextView) convertView.findViewById(R.id.refTextView);
holder.chapterScreenImageView = (ASyncImageView) convertView.findViewById(R.id.chapterScreenImageView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
setColorChange(holder, ViewContentHelper.getColorForSelection(selectedPosition == position));
StoriesChapter positionModel = getItem(position);
String imgUrl = positionModel.getStoryPages().get(0).getImageUrl();
String lastBitFromUrl = FileNameHelper.getLastBitFromUrl(imgUrl);
String path = lastBitFromUrl.replaceAll("[{//:}]", "");
holder.chapterScreenImageView.setImageBitmap(getBitmapFromAsset("images/" + path));
holder.chapterNameTextView.setText(positionModel.getTitle());
holder.referenceTextView.setText(positionModel.getRef());
holder.chapterNameTextView.setTextColor(context.getResources().getColor((selectedPosition == position)? R.color.primary : R.color.black));
return convertView;
}
private Bitmap getBitmapFromAsset(String strName)
{
AssetManager assetManager = context.getAssets();
InputStream input = null;
try {
input = assetManager.open(strName);
} catch (IOException e) {
e.printStackTrace();
}
return BitmapFactory.decodeStream(input);
}
public void setColorChange(ViewHolder holder, int color) {
holder.chapterNameTextView.setTextColor(color);
holder.referenceTextView.setTextColor(color);
}
private static class ViewHolder {
TextView chapterNameTextView;
TextView referenceTextView;
ASyncImageView chapterScreenImageView;
}
}