android-ibc-forum

Unnamed repository; edit this file 'description' to name the repository.
git clone http://git.code.weiherhei.de/android-ibc-forum.git
Log | Files | Refs

ListEntryContentAdapter.java (5014B)


      1 /**
      2  * 
      3  */
      4 package de.mtbnews.android.adapter;
      5 
      6 import java.util.List;
      7 
      8 import android.app.Activity;
      9 import android.content.Context;
     10 import android.content.SharedPreferences;
     11 import android.graphics.Typeface;
     12 import android.text.Html;
     13 import android.text.format.DateFormat;
     14 import android.text.method.LinkMovementMethod;
     15 import android.view.LayoutInflater;
     16 import android.view.View;
     17 import android.view.ViewGroup;
     18 import android.widget.BaseAdapter;
     19 import android.widget.TextView;
     20 import de.mtbnews.android.IBCApplication;
     21 import de.mtbnews.android.R;
     22 import de.mtbnews.android.tapatalk.wrapper.ListEntry;
     23 
     24 /**
     25  * @author dankert
     26  * 
     27  */
     28 public class ListEntryContentAdapter extends BaseAdapter
     29 {
     30 
     31 	/** Remember our context so we can use it when constructing views. */
     32 	private Context mContext;
     33 
     34 	/**
     35 	 * Hold onto a copy of the entire Contact List.
     36 	 */
     37 
     38 	private LayoutInflater inflator;
     39 
     40 	private List<? extends ListEntry> list;
     41 
     42 	private boolean containsBBCode;
     43 	private boolean containsHtml;
     44 
     45 	public ListEntryContentAdapter(Context context, List<? extends ListEntry> list)
     46 	{
     47 		mContext = context;
     48 		inflator = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     49 		this.list = list;
     50 	}
     51 
     52 	public ListEntryContentAdapter(Context context, List<? extends ListEntry> list, boolean containsBBCode,
     53 			boolean containsHtml)
     54 	{
     55 		mContext = context;
     56 		inflator = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     57 		this.list = list;
     58 		this.containsBBCode = containsBBCode;
     59 		this.containsHtml = containsHtml;
     60 	}
     61 
     62 	public int getCount()
     63 	{
     64 		return list.size();
     65 	}
     66 
     67 	public Object getItem(int position)
     68 	{
     69 		return list.get(position);
     70 	}
     71 
     72 	/** Use the array index as a unique id. */
     73 	public long getItemId(int position)
     74 	{
     75 		return position;
     76 
     77 	}
     78 
     79 	/**
     80 	 * @param convertView
     81 	 *            The old view to overwrite, if one is passed
     82 	 * @returns a ContactEntryView that holds wraps around an ContactEntry
     83 	 */
     84 	public View getView(int position, View convertView, ViewGroup parent)
     85 	{
     86 
     87 		final ListEntry e = list.get(position);
     88 		final ViewHolder viewHolder;
     89 
     90 		if (convertView == null)
     91 		{
     92 			convertView = inflator.inflate(R.layout.rss_item, null);
     93 
     94 			// Linken Rand ggf. erhöhen.
     95 			// LinearLayout.LayoutParams params2 = new
     96 			// LinearLayout.LayoutParams(
     97 			// LinearLayout.LayoutParams.FILL_PARENT,
     98 			// LinearLayout.LayoutParams.WRAP_CONTENT);
     99 			// params2.setMargins(20,0,0,0);
    100 			// view.setLayoutParams(params2);
    101 
    102 			viewHolder = new ViewHolder();
    103 
    104 			viewHolder.datum = (TextView) convertView.findViewById(R.id.item_date);
    105 			viewHolder.name = (TextView) convertView.findViewById(R.id.item_name);
    106 			viewHolder.title = (TextView) convertView.findViewById(R.id.item_title);
    107 			viewHolder.desc = (TextView) convertView.findViewById(R.id.item_description);
    108 			convertView.setTag(viewHolder);
    109 		}
    110 		else
    111 		{
    112 			viewHolder = (ViewHolder) convertView.getTag();
    113 		}
    114 
    115 		if (e.getDate() != null)
    116 			viewHolder.datum.setText(DateFormat.getDateFormat(parent.getContext()).format(e.getDate()) + " "
    117 					+ DateFormat.getTimeFormat(parent.getContext()).format(e.getDate()));
    118 		else
    119 			// viewHolder.datum.setEnabled(false);
    120 			viewHolder.datum.setText("");
    121 
    122 		if (e.getName() != null)
    123 			viewHolder.name.setText(e.getName());
    124 		else
    125 			// viewHolder.name.setEnabled(false);
    126 			viewHolder.name.setText("");
    127 
    128 		if (e.getTitle() != null)
    129 			viewHolder.title.setText(e.getTitle());
    130 		else
    131 			viewHolder.title.setEnabled(false);
    132 
    133 		if (e.isUnread())
    134 			viewHolder.title.setTypeface(null, Typeface.BOLD);
    135 		else
    136 			viewHolder.title.setTypeface(null, Typeface.NORMAL);
    137 
    138 		if (e.getContent() != null)
    139 		{
    140 			SharedPreferences prefs = ((IBCApplication) ((Activity) mContext).getApplication()).prefs;
    141 			if (containsBBCode && prefs.getBoolean("parse_bbcode", false))
    142 			{
    143 				String html;
    144 				// TextProcessor create = BBProcessorFactory.getInstance()
    145 				// .create();
    146 				// html = create.process(e.getContent());
    147 				html = e.getContent();
    148 				html = new BBCodeConverter().process(html);
    149 
    150 				// Html.ImageGetter imageGetter = null;
    151 				// if (prefs.getBoolean("load_images", false))
    152 				// // imageGetter = new ImageGetter();
    153 				// imageGetter = new URLImageParser(viewHolder.desc, mContext);
    154 
    155 				// viewHolder.desc.setText(Html.fromHtml(html.toString(),
    156 				// imageGetter, null));
    157 				viewHolder.desc.setText(Html.fromHtml(html));
    158 				viewHolder.desc.setMovementMethod(LinkMovementMethod.getInstance());
    159 				// viewHolder.desc.setAutoLinkMask(Linkify.ALL);
    160 			}
    161 			else if (containsHtml)
    162 			{
    163 
    164 				final CharSequence html = e.getContent();
    165 				// if (prefs.getBoolean("load_images", false))
    166 				// imageGetter = new URLImageParser(viewHolder.desc, mContext);
    167 
    168 				viewHolder.desc.setText(Html.fromHtml(html.toString()));
    169 			}
    170 			else
    171 			{
    172 				viewHolder.desc.setText(e.getContent());
    173 			}
    174 		}
    175 		else
    176 			viewHolder.desc.setText("");
    177 
    178 		return convertView;
    179 	}
    180 
    181 	static class ViewHolder
    182 	{
    183 		TextView datum;
    184 		TextView title;
    185 		TextView name;
    186 		TextView desc;
    187 	}
    188 
    189 }