Files
BeWoPlaner/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/MessageAdapter.java
2016-11-03 15:26:12 +01:00

105 lines
3.5 KiB
Java

package beyondsoft.bewomitarbeiterapp;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import Database.DatabaseHandler;
import entities.ChatMessage;
import soapConnection.SoapConnectionManager;
/**
* Created by bib on 20.05.2016.
*/
public class MessageAdapter extends ArrayAdapter<ChatMessage> {
private Activity activity;
public ArrayList<ChatMessage> messages;
public MessageAdapter(Activity context, int resource, List<ChatMessage> objects) {
super(context, resource, objects);
this.activity = context;
this.messages = new ArrayList<>(objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
int layoutResource;
ChatMessage chatMessage = getItem(position);
if (chatMessage.SenderPersonOid == SoapConnectionManager.getUser().getPersonOid()) {
layoutResource = R.layout.item_chat_right;
}else {
layoutResource = R.layout.item_chat_left;
}
convertView = inflater.inflate(layoutResource, parent, false);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
holder.msg.setText(chatMessage.ChatText);
if(holder.pending_msg_image != null && chatMessage.IsDelivered) {
holder.pending_msg_image.setVisibility(View.INVISIBLE);
}
if(chatMessage.IsTeam && chatMessage.SenderPersonOid != SoapConnectionManager.getUser().getPersonOid()) {
DatabaseHandler instance = DatabaseHandler.getInstance(this.getContext());
ContactListItem sender = instance.getContactByPersonOid(chatMessage.SenderPersonOid, false);
String name = sender != null ? sender.getChatName() : "";
holder.teamMemberName.setText(name);
holder.teamMemberName.setVisibility(View.VISIBLE);
}
if(chatMessage.SenderPersonOid == SoapConnectionManager.getUser().getPersonOid()){
holder.dateIn.setText(chatMessage.getInsTsAsString());
} else {
holder.dateOut.setText(chatMessage.getInsTsAsString());
}
return convertView;
}
@Override
public int getViewTypeCount() {
// return the total number of view types. this value should never change
// at runtime
return 2;
}
@Override
public int getItemViewType(int position) {
// return a value between 0 and (getViewTypeCount - 1)
return position % 2;
}
private class ViewHolder {
private TextView msg;
private TextView dateOut;
private TextView dateIn;
private TextView teamMemberName;
private ImageView pending_msg_image;
ViewHolder(View v) {
msg = (TextView) v.findViewById(R.id.txt_msg);
dateOut = (TextView)v.findViewById(R.id.DateOUT);
dateIn = (TextView)v.findViewById(R.id.DateIN);
teamMemberName = (TextView) v.findViewById(R.id.teamMember);
pending_msg_image = (ImageView) v.findViewById(R.id.pending_msg_img);
}
}
}