Skip to content

Instantly share code, notes, and snippets.

@frankibem
Created March 31, 2016 22:18
Show Gist options
  • Save frankibem/f0f95d04dc3134a4e51f1f44b1527b45 to your computer and use it in GitHub Desktop.
Save frankibem/f0f95d04dc3134a4e51f1f44b1527b45 to your computer and use it in GitHub Desktop.
package com.test.groupchatapp;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
/**
* @author Frank Ibem.
*/
public class MessageAdapter extends ArrayAdapter<Message> {
private LayoutInflater inflater;
public MessageAdapter(Context context) {
super(context, -1);
inflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Message mes = getItem(position);
if (mes.isPresence()) {
return getPresenceView(mes, parent);
} else {
return getNormalView(mes, parent);
}
}
/**
* Returns the view to be used for a presence message
*/
private View getPresenceView(Message mes, ViewGroup parent) {
TextView presence;
View view = inflater.inflate(R.layout.presence_item, parent, false);
presence = (TextView) view.findViewById(R.id.text_presence);
presence.setText(mes.getMessage());
return view;
}
/**
* Returns a view to be used for a normal message
*/
private View getNormalView(Message mes, ViewGroup parent) {
TextView userName, message;
View view = inflater.inflate(R.layout.message_item, parent, false);
userName = (TextView) view.findViewById(R.id.text_username);
message = (TextView) view.findViewById(R.id.text_message);
// Set username and message
userName.setText(mes.getUserName());
message.setText(mes.getMessage());
return view;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment