package org.gsm.rcsApp.adapters; import java.util.ArrayList; import org.gsm.RCSDemo.R; import org.gsm.rcsApp.RCS.Contact; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.fedorvlasov.lazylist.ImageLoader; public class ContactRowAdapter extends BaseAdapter { private Activity activity; private ArrayList<Contact> data; private static LayoutInflater inflater=null; public ImageLoader imageLoader; public ContactRowAdapter(Activity a, ArrayList<Contact> retrievedContacts) { activity = a; data=retrievedContacts; inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); imageLoader=new ImageLoader(activity.getApplicationContext()); } public int getCount() { return data.size(); } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { View vi=convertView; if (convertView==null) vi = inflater.inflate(R.layout.contact_row, null); View thumbnail_wrapper=vi.findViewById(R.id.thumbnail_wrapper); TextView contactNameView = (TextView)vi.findViewById(R.id.contactName); TextView contactStatusView = (TextView)vi.findViewById(R.id.contactStatus); TextView contactInfoView = (TextView)vi.findViewById(R.id.contactInfo); TextView newMessageIndicator = (TextView)vi.findViewById(R.id.newMessageIndicator); ImageView thumb_image=(ImageView)thumbnail_wrapper.findViewById(R.id.thumbnail_image); // thumb image Contact contact=data.get(position); String displayName=contact.getDisplayName(); String contactInfo=contact.getContactId(); String capabilities=contact.getCapabilities(); String icon=contact.getIcon(); contactNameView.setText(displayName); contactInfoView.setText(contactInfo); if (capabilities!=null) { if (capabilities.indexOf("IM_SESSION")>-1) { contactStatusView.setText("online"); contactStatusView.setTextColor(Color.GREEN); } else { contactStatusView.setText("offline"); contactStatusView.setTextColor(Color.RED); } } else { contactStatusView.setText("unknown"); contactStatusView.setTextColor(Color.BLACK); } if (contact.isHasNewMessage()) { newMessageIndicator.setVisibility(View.VISIBLE); } else { newMessageIndicator.setVisibility(View.INVISIBLE); } if (icon!=null && (icon.startsWith("http://") || icon.startsWith("https://"))) { imageLoader.DisplayImage(icon, thumb_image); } return vi; } }