package org.sechat.app.adapter;
/**
* Copyright (c) 2014 Sechat GbR <support@sechat.org>
*
* You should have received a copy of the MIT License
* along with this program (license.txt).
* If not, see <http://sechat.github.io/license.txt>.
*/
import java.sql.Timestamp;
import java.util.LinkedList;
import org.sechat.app.Discussion;
import org.sechat.app.R;
import org.sechat.app.ThreadHelper;
import android.app.Activity;
import android.content.Context;
import android.text.ClipboardManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MessageAdapter extends BaseAdapter {
private static ThreadHelper th = new ThreadHelper();
private Activity activity;
private LinkedList<Discussion> data;
private static LayoutInflater inflater = null;
public MessageAdapter(Activity activity, LinkedList<Discussion> data) {
this.activity = activity;
this.data = data;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
final Discussion entry = data.get(position);
if (entry.getMe()) vi = inflater.inflate(R.layout.message_list_out, null);
else vi = inflater.inflate(R.layout.message_list_in, null);
LinearLayout list = (LinearLayout)vi.findViewById(R.id.messageList);
TextView time = (TextView)vi.findViewById(R.id.time);
TextView message = (TextView)vi.findViewById(R.id.message);
list.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View arg0) {
ClipboardManager cm = (ClipboardManager) activity
.getSystemService(Context.CLIPBOARD_SERVICE);
cm.setText(entry.getMessage());
th.sendNotification(activity, "Copied to clipboard");
return true;
}
});
message.setText(entry.getMessage());
Timestamp timestamp = entry.getTimestamp();
time.setText(timestamp.getHours()+":"+timestamp.getMinutes());
return vi;
}
}