package org.softeg.slartus.forpdaplus.listfragments.adapters;
import android.content.Context;
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.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.imageaware.ImageViewAware;
import org.softeg.slartus.forpdaapi.News;
import org.softeg.slartus.forpdaplus.App;
import org.softeg.slartus.forpdaplus.R;
import org.softeg.slartus.forpdaplus.prefs.Preferences;
import java.util.ArrayList;
/**
* Created by slartus on 20.02.14.
*/
public class NewsListAdapter extends BaseAdapter {
private ArrayList<News> newsList;
final LayoutInflater inflater;
private ImageLoader imageLoader;
private Boolean mLoadImages;
private int mNewsListRowId;
public NewsListAdapter(Context context, ArrayList<News> newsList, ImageLoader imageLoader) {
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mNewsListRowId = Preferences.News.List.getNewsListViewId();
this.imageLoader = imageLoader;
this.newsList = newsList;
mLoadImages = Preferences.News.List.isLoadImages();
}
@Override
public void notifyDataSetChanged() {
mLoadImages = Preferences.News.List.isLoadImages();
mNewsListRowId = Preferences.News.List.getNewsListViewId();
super.notifyDataSetChanged();
}
public void setData(ArrayList<News> data) {
this.newsList = data;
}
@Override
public int getCount() {
return newsList.size();
}
@Override
public Object getItem(int p1) {
return newsList.get(p1);
}
@Override
public long getItemId(int p1) {
return p1;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
final ViewHolder holder;
View rowView = view;
if (rowView == null || rowView.getId() != mNewsListRowId) {
rowView = inflater.inflate(mNewsListRowId, null);
holder = new ViewHolder();
assert rowView != null;
rowView.setId(mNewsListRowId);
holder.image_panel = rowView.findViewById(R.id.image_panel);
if (holder.image_panel != null)
holder.image_panel.setVisibility(mLoadImages ? View.VISIBLE : View.GONE);
holder.imageImage = (ImageView) rowView.findViewById(R.id.imageImage);
holder.textSource = (TextView) rowView.findViewById(R.id.textSource);
holder.textComments = (TextView) rowView.findViewById(R.id.textComments);
holder.textTag = (TextView) rowView.findViewById(R.id.textTag);
holder.textAuthor = (TextView) rowView.findViewById(R.id.textAvtor);
holder.textDate = (TextView) rowView.findViewById(R.id.textDate);
holder.textDescription = (TextView) rowView.findViewById(R.id.textDescription);
holder.textTitle = (TextView) rowView.findViewById(R.id.textTitle);
rowView.setTag(holder);
} else {
holder = (ViewHolder) rowView.getTag();
if (holder.image_panel != null)
holder.image_panel.setVisibility(mLoadImages ? View.VISIBLE : View.GONE);
}
final News data = newsList.get(position);
if (holder.textComments != null)
holder.textComments.setText(String.valueOf(data.getCommentsCount()));
if (holder.textAuthor != null)
holder.textAuthor.setText(data.getAuthor());
if (holder.textDate != null)
holder.textDate.setText(data.getNewsDate());
if (holder.textDescription != null)
holder.textDescription.setText(data.getDescription());
if (holder.textTitle != null)
holder.textTitle.setText(data.getTitle());
if(data.getImgUrl()==null)
holder.imageImage.setVisibility(View.GONE);
else
holder.imageImage.setVisibility(View.VISIBLE);
if (holder.image_panel != null && data.getImgUrl() != null && mLoadImages) {
imageLoader.displayImage(data.getImgUrl().toString(), new ImageViewAware(holder.imageImage, false));
}
if (data.getTagTitle() != null && holder.textTag != null) {
if(data.getTagTitle().equals("")){
holder.textTag.setVisibility(View.GONE);
}else {
holder.textTag.setVisibility(View.VISIBLE);
holder.textTag.setText(data.getTagTitle());
}
}
if (data.getSourceTitle() != null && holder.textSource != null) {
holder.textSource.setVisibility(View.VISIBLE);
holder.textSource.setText(App.getContext().getString(R.string.source).concat(": ").concat(data.getSourceTitle().toString()));
}
return rowView;
}
public class ViewHolder {
public View image_panel;
public ImageView imageImage;
public TextView textTitle;
public TextView textDate;
public TextView textDescription;
public TextView textAuthor;
public TextView textTag;
public TextView textComments;
public TextView textSource;
}
}