project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/ChatlogAdapter.java
changeset 7508 763d3961400b
parent 7504 ed1d52c5aa94
child 7550 3c4b4cb40f40
--- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/ChatlogAdapter.java	Sat Aug 18 00:22:33 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-package org.hedgewars.hedgeroid.netplay;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.hedgewars.hedgeroid.netplay.MessageLog.Observer;
-
-import android.content.Context;
-import android.text.method.LinkMovementMethod;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AbsListView.LayoutParams;
-import android.widget.BaseAdapter;
-import android.widget.TextView;
-
-/**
- * Optimization: ListView is smart enough to try re-using the same view for an item
- * with the same ID, but it still calls getView for those items when the list changes.
- * Since lines with a given ID never change in our chatlog, we can avoid the effort
- * of TextView.setText in many cases by checking if the view is already set up for the
- * line with the right ID - but to do that, the view needs to remember the ID it's
- * holding the text for. That's what the LoglineView does. 
- */
-class LoglineView extends TextView {
-	long chatlogId = -1;
-	
-	public LoglineView(Context context) {
-		super(context);
-	}
-}
-
-public class ChatlogAdapter extends BaseAdapter implements Observer {
-	long idOffset = 0;
-	private List<CharSequence> log = new ArrayList<CharSequence>();
-	private Context context;
-	
-	public ChatlogAdapter(Context context) {
-		this.context = context;
-	}
-	
-	public int getCount() {
-		return log.size();
-	}
-
-	public Object getItem(int position) {
-		return log.get(position);
-	}
-
-	public long getItemId(int position) {
-		return position+idOffset;
-	}
-
-	public boolean hasStableIds() {
-		return true;
-	}
-
-	public void clear() {
-		idOffset += log.size();
-		log.clear();
-		notifyDataSetChanged();
-	}
-	
-	public void lineAdded(CharSequence text) {
-		log.add(text);
-		notifyDataSetChanged();
-	}
-	
-	public void lineRemoved() {
-		log.remove(0);
-		idOffset += 1;
-		notifyDataSetChanged();
-	}
-	
-	public void setLog(Collection<CharSequence> log) {
-		idOffset += log.size();
-		this.log = new ArrayList<CharSequence>(log);
-		notifyDataSetChanged();
-	}
-	
-	public View getView(int position, View convertView, ViewGroup parent) {
-		LoglineView v = (LoglineView)convertView;
-		if (v == null) {
-			v = new LoglineView(context);
-			v.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
-			v.setMovementMethod(LinkMovementMethod.getInstance());
-		}
-		long id = getItemId(position);
-		if(id != v.chatlogId) {
-			v.setText(log.get(position));
-			v.chatlogId = id;
-		}
-		return v;
-	}
-}
\ No newline at end of file