package typical_if.android.adapter;
import android.net.Uri;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.io.File;
import java.util.ArrayList;
import typical_if.android.Constants;
import typical_if.android.R;
import typical_if.android.fragment.FragmentFullScreenViewFromPhone;
import typical_if.android.fragment.FragmentUploadPhotoList;
import typical_if.android.model.UploadPhotos;
;
/**
* Created by LJ on 25.07.2014.
*/
public class PhotoUploadAdapter extends BaseAdapter {
FragmentUploadPhotoList fragmentUploadPhotoList;
String titlename;
LayoutInflater layoutInflater;
ArrayList<UploadPhotos> uploadphotolist;
android.support.v4.app.FragmentManager manager;
int which;
public PhotoUploadAdapter(FragmentUploadPhotoList fragmentUploadPhotoList, String titlename, LayoutInflater inflater, ArrayList<UploadPhotos> uploadphotolist, FragmentManager fragmentManager, int which) {
this.fragmentUploadPhotoList = fragmentUploadPhotoList;
this.titlename = titlename;
this.layoutInflater = inflater;
this.uploadphotolist = uploadphotolist;
this.manager = fragmentManager;
this.which = which;
}
@Override
public int getCount() {
return uploadphotolist.size();
}
@Override
public Object getItem(int position) {
return uploadphotolist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder viewHolder;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.fragment_add_photo_item, null);
viewHolder = new ViewHolder(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
File file = new File(uploadphotolist.get(position).photoSrc);
// Glide.with(TIFApp.getAppContext())
// .load(Uri.fromFile(file).toString())
// .placeholder(R.drawable.event_stub)
// .crossFade()
// .into(viewHolder.photo);
ImageLoader.getInstance().displayImage(Uri.fromFile(file).toString(), viewHolder.photo);
viewHolder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
uploadphotolist.get(position).isChecked = isChecked;
if (which == 1) {
if (isChecked) {
viewHolder.background.setVisibility(View.VISIBLE);
viewHolder.checkbox.setChecked(true);
} else {
viewHolder.background.setVisibility(View.INVISIBLE);
viewHolder.checkbox.setChecked(false);
}
} else {
if (isChecked) {
viewHolder.background.setVisibility(View.VISIBLE);
Constants.tempCurrentPhotoAttachCounter++;
} else {
viewHolder.background.setVisibility(View.INVISIBLE);
Constants.tempCurrentPhotoAttachCounter--;
}
viewHolder.checkbox.setChecked(isChecked);
FragmentUploadPhotoList.refreshCheckBoxes();
}
for (int i = 0; i < getCount(); i++) {
if(((UploadPhotos) getItem(i)).isChecked) {
fragmentUploadPhotoList.setFabVisibility(View.VISIBLE);
break;
} else {
fragmentUploadPhotoList.setFabVisibility(View.INVISIBLE);
}
}
}
});
viewHolder.photo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentFullScreenViewFromPhone fragmentFullScreenViewFromPhone = new FragmentFullScreenViewFromPhone().newInstance(position, uploadphotolist);
manager.beginTransaction().add(R.id.container, fragmentFullScreenViewFromPhone).addToBackStack(null).commit();
}
});
return convertView;
}
public static class ViewHolder {
public final ImageView photo;
public CheckBox checkbox;
public final ImageView background;
public ViewHolder(View convertView) {
this.checkbox = (CheckBox) convertView.findViewById(R.id.checkBox_for_upload);
this.photo = (ImageView) convertView.findViewById(R.id.thumb_photo_from_sd);
this.background = (ImageView) convertView.findViewById(R.id.background_check);
}
}
}