safedispatch-mobile/libSafeMobile/src/main/java/com/safemobile/adapters/MessagesGridViewAdapter.java

100 lines
2.9 KiB
Java

package com.safemobile.adapters;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.safemobile.lib.Msg;
import com.safemobile.lib.R;
import com.safemobile.lib.SM;
public class MessagesGridViewAdapter extends BaseAdapter {
private final ArrayList<Msg> listMessages;
private final Activity activity;
public MessagesGridViewAdapter(Activity activity, ArrayList<Msg> listMessages) {
super();
this.activity = activity;
this.listMessages = listMessages;
}
@Override
public int getCount() {
return listMessages.size();
}
@Override
public Msg getItem(int position) {
return listMessages.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
public static class ViewHolder {
public ImageView imgViewContact;
public TextView txtViewContact;
public TextView txtViewDateTime;
public TextView txtViewLastMsg;
public LinearLayout layoutMessage;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder view;
LayoutInflater inflator = activity.getLayoutInflater();
if (convertView == null) {
view = new ViewHolder();
convertView = inflator.inflate(R.layout.row_message, null);
view.imgViewContact = convertView.findViewById(R.id.imageViewContact);
view.txtViewContact = convertView.findViewById(R.id.textViewContact);
view.txtViewDateTime = convertView.findViewById(R.id.textViewLastDate);
view.txtViewLastMsg = convertView.findViewById(R.id.textViewLastMsg);
view.layoutMessage = convertView.findViewById(R.id.layoutMessage);
convertView.setTag(view);
} else {
view = (ViewHolder) convertView.getTag();
}
try {
view.imgViewContact.setImageResource(listMessages.get(position).from.getLargeIcon());
view.txtViewContact.setText(String.format("%s :", listMessages.get(position).from.name));
if (listMessages.get(position).message.length() > 25)
view.txtViewLastMsg.setText(String.format("%s...", listMessages.get(position).message.substring(0, 25)));
else
view.txtViewLastMsg.setText(listMessages.get(position).message);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
if (listMessages.get(position).received.after(calendar.getTime()))
sdf = new SimpleDateFormat("HH:mm:ss");
else
sdf = new SimpleDateFormat("MMM-dd HH:mm");
view.txtViewDateTime.setText(sdf.format(listMessages.get(position).received));
} catch (Exception ex) {
SM.Exception(ex.toString());
}
return convertView;
}
}