Android Open Source - roodroid Messages Adapter






From Project

Back to project page roodroid.

License

The source code is released under:

Copyright (c) 2011, Jonathan Perichon & Lucas Gerbeaux Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"...

If you think the Android project roodroid listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package fr.utbm.roodroid.activity;
/*from  w  w w  . ja  v  a  2 s .c  o m*/
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import fr.utbm.roodroid.Message;
import fr.utbm.roodroid.Message.MessageStatus;
import fr.utbm.roodroid.R;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class MessagesAdapter extends BaseAdapter implements Serializable {
  private static final long serialVersionUID = 8243606670808527527L;
  private Context context;
  private String contactName;
  private int id;
  private List<Message> messages;

  public MessagesAdapter(Context context, List<Message> messages, String contact, int id) {
    this.context = context;
    this.contactName = contact;
    this.id = id;
    updateMessages(messages);
  }
  
  public List<Message> getMessages() {
    return messages;
  }
  
  public void updateMessages(List<Message> messages) {
    this.messages = new ArrayList<Message>(messages);
    Collections.sort(this.messages);
  }
  
  public int getId() {
    return id;
  }

  public int getCount() {
    return messages.size();
  }

  public Object getItem(int position) {
    if (position >= messages.size()) {
      throw new IndexOutOfBoundsException();
    }
    return messages.get(position);
  }

  public long getItemId(int position) {
    if (position >= messages.size()) {
      throw new IndexOutOfBoundsException();
    }
    return position;
  }

  public View getView(int position, View convertView, ViewGroup viewGroup) {
    if (position >= messages.size()) {
      throw new IndexOutOfBoundsException();
    }
    
    Message entry = messages.get(position);
    
    if (convertView == null) {
      LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      convertView = inflater.inflate(R.layout.messages_row, null);
    }
    
    TextView contact = (TextView) convertView.findViewById(R.id.contactName);
    if (entry.getMessageStatus() == MessageStatus.SENT) {
      contact.setText("Me : ");
    }
    else {
      contact.setText(contactName + " : ");
    }
      
    TextView content = (TextView) convertView.findViewById(R.id.content);
    content.setText(entry.getTextContent());
    
    
    TextView date = (TextView) convertView.findViewById(R.id.date);
    Date now = new Date();
    String messageDate = "";
    if (entry.getDate().getDate() == now.getDate() && entry.getDate().getMonth() == now.getMonth() && entry.getDate().getYear() == now.getYear()) {
      messageDate += new SimpleDateFormat("HH:mm").format(entry.getDate());
    }
    else if (entry.getDate().getDate() == now.getDate() -1 && entry.getDate().getMonth() == now.getMonth() && entry.getDate().getYear() == now.getYear()) {
      messageDate += "Yest";
    }
    else {
      messageDate += new SimpleDateFormat("dd/MM").format(entry.getDate());
    }
    date.setText(messageDate);
    
    return convertView;
  }

}




Java Source Code List

fr.utbm.roodroid.ApplicationManager.java
fr.utbm.roodroid.ConnectionBluetooth.java
fr.utbm.roodroid.ConnectionWifi.java
fr.utbm.roodroid.Connection.java
fr.utbm.roodroid.Conversation.java
fr.utbm.roodroid.Message.java
fr.utbm.roodroid.PacketClient.java
fr.utbm.roodroid.Packet.java
fr.utbm.roodroid.TCPCommandType.java
fr.utbm.roodroid.TextMessage.java
fr.utbm.roodroid.activity.AuthorizedUsernamesAdapter.java
fr.utbm.roodroid.activity.BluetoothDiscovery.java
fr.utbm.roodroid.activity.ClientBluetoothSettings.java
fr.utbm.roodroid.activity.ClientWifiSettings.java
fr.utbm.roodroid.activity.ConversationsAdapter.java
fr.utbm.roodroid.activity.ConversationsList.java
fr.utbm.roodroid.activity.LogPage.java
fr.utbm.roodroid.activity.MessagesAdapter.java
fr.utbm.roodroid.activity.MessagesList.java
fr.utbm.roodroid.activity.ProfileTypeChooser.java
fr.utbm.roodroid.activity.ServerAdvancedSettings.java
fr.utbm.roodroid.activity.ServerBluetoothMain.java
fr.utbm.roodroid.activity.ServerBluetoothSettings.java
fr.utbm.roodroid.activity.ServerWifiMain.java
fr.utbm.roodroid.activity.ServerWifiSettings.java
fr.utbm.roodroid.client.ClientBluetooth.java
fr.utbm.roodroid.client.ClientWifi.java
fr.utbm.roodroid.client.Client.java
fr.utbm.roodroid.client.ConversationsDataSource.java
fr.utbm.roodroid.client.ConversationsHelper.java
fr.utbm.roodroid.server.AuthByID.java
fr.utbm.roodroid.server.AuthByPassword.java
fr.utbm.roodroid.server.AuthMethod.java
fr.utbm.roodroid.server.AuthNone.java
fr.utbm.roodroid.server.ServerBluetooth.java
fr.utbm.roodroid.server.ServerWifi.java
fr.utbm.roodroid.server.Server.java