129 lines
3.7 KiB
Java
129 lines
3.7 KiB
Java
|
package com.safemobile.adapters;
|
||
|
|
||
|
import java.text.SimpleDateFormat;
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.Calendar;
|
||
|
import java.util.Date;
|
||
|
import java.util.Locale;
|
||
|
|
||
|
import android.app.Activity;
|
||
|
import android.content.Context;
|
||
|
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.AppParams;
|
||
|
import com.safemobile.lib.Contact;
|
||
|
import com.safemobile.lib.R;
|
||
|
import com.safemobile.lib.SM;
|
||
|
import com.safemobile.libpad.PadTextMessage;
|
||
|
|
||
|
public class PadMessagesGridViewAdapter extends BaseAdapter
|
||
|
{
|
||
|
private ArrayList<PadTextMessage> listMessages;
|
||
|
private Activity activity;
|
||
|
//public String time;
|
||
|
//private int[] colors = new int[] { Color.parseColor("#FFFFFF"), Color.parseColor("#D2E4FC") };
|
||
|
|
||
|
|
||
|
public PadMessagesGridViewAdapter(Activity activity, ArrayList<PadTextMessage> listMessages, Context context) {
|
||
|
super();
|
||
|
this.activity = activity;
|
||
|
this.listMessages = listMessages;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public int getCount() {
|
||
|
return listMessages.size();
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public PadTextMessage getItem(int position) {
|
||
|
return listMessages.get(position);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public long getItemId(int position) {
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
/** return the list of messages in the adapter
|
||
|
* @return an ArrayList of PadTextMessages
|
||
|
*/
|
||
|
public ArrayList<PadTextMessage> getMessages() {
|
||
|
return listMessages;
|
||
|
}
|
||
|
|
||
|
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 = (ImageView) convertView.findViewById(R.id.imageViewContact);
|
||
|
view.txtViewContact = (TextView) convertView.findViewById(R.id.textViewContact);
|
||
|
view.txtViewDateTime = (TextView) convertView.findViewById(R.id.textViewLastDate);
|
||
|
view.txtViewLastMsg = (TextView) convertView.findViewById(R.id.textViewLastMsg);
|
||
|
view.layoutMessage = (LinearLayout) convertView.findViewById(R.id.layoutMessage);
|
||
|
|
||
|
convertView.setTag(view);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
view = (ViewHolder) convertView.getTag();
|
||
|
}
|
||
|
|
||
|
try
|
||
|
{
|
||
|
view.imgViewContact.setImageResource(R.drawable.peopleblue_large);
|
||
|
//view.imgViewContact.setImageResource(R.drawable.peopleblue);
|
||
|
view.txtViewContact.setText(Contact.getNameForRadioID(AppParams.listContacts, listMessages.get(position).radioID)+ " :");
|
||
|
if(listMessages.get(position).message.length() > 25)
|
||
|
view.txtViewLastMsg.setText(listMessages.get(position).message.substring(0, 25) + "...");
|
||
|
else
|
||
|
view.txtViewLastMsg.setText(listMessages.get(position).message);
|
||
|
|
||
|
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss",Locale.getDefault());
|
||
|
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);
|
||
|
Date date = new Date(listMessages.get(position).timeGMT * 1000);
|
||
|
|
||
|
if(date.after(calendar.getTime()))
|
||
|
sdf = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());
|
||
|
else
|
||
|
sdf = new SimpleDateFormat("MMM-dd HH:mm", Locale.getDefault());
|
||
|
|
||
|
// set gmt time
|
||
|
//sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||
|
|
||
|
view.txtViewDateTime.setText(sdf.format(date));
|
||
|
}
|
||
|
catch(Exception ex)
|
||
|
{
|
||
|
SM.Exception(ex.toString());
|
||
|
}
|
||
|
return convertView;
|
||
|
}
|
||
|
}
|