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 listMessages; private Activity activity; //public String time; //private int[] colors = new int[] { Color.parseColor("#FFFFFF"), Color.parseColor("#D2E4FC") }; public PadMessagesGridViewAdapter(Activity activity, ArrayList 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 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; } }