ContactListExpandableListAdapter.java :  » Jabber » jabberoid » uk » ac » napier » android » jabberoid » tools » Android Open Source

Android Open Source » Jabber » jabberoid 
jabberoid » uk » ac » napier » android » jabberoid » tools » ContactListExpandableListAdapter.java
package uk.ac.napier.android.jabberoid.tools;

import java.util.List;
import java.util.Map;

import uk.ac.napier.android.jabberoid.Constants;
import uk.ac.napier.android.jabberoid.R;
import uk.ac.napier.android.jabberoid.tools.ContactEntry;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.SimpleExpandableListAdapter;
import android.widget.TextView;

public class ContactListExpandableListAdapter extends SimpleExpandableListAdapter {
  
  private Activity context;
  List<? extends List<? extends Map<String, ?>>> hm;
  private String[] childFrom;
  
  public ContactListExpandableListAdapter(Context context,
      List<? extends Map<String, ?>> groupData,
      int expandedGroupLayout,
      int collapsedGroupLayout, 
      String[] groupFrom, 
      int[] groupTo,
      List<? extends List<? extends Map<String, ?>>> childData,
      int childLayout, 
      int lastChildLayout, 
      String[] childFrom,
      int[] childTo) {
    
    super(context, groupData, expandedGroupLayout, collapsedGroupLayout, groupFrom,
        groupTo, childData, childLayout, lastChildLayout, childFrom, childTo);
    this.context = (Activity) context;
    this.hm = childData;
    this.childFrom = childFrom;
  }
  
  public ContactListExpandableListAdapter(Context context,
      List<? extends Map<String, ?>> groupData, int expandedGroupLayout,
      int collapsedGroupLayout, String[] groupFrom, int[] groupTo,
      List<? extends List<? extends Map<String, ?>>> childData,
      int childLayout, String[] childFrom, int[] childTo) {
    super(context, groupData, expandedGroupLayout, collapsedGroupLayout, groupFrom,
        groupTo, childData, childLayout, childFrom, childTo);
    this.context = (Activity) context;
    this.hm = childData;
    this.childFrom = childFrom;
  }

  public ContactListExpandableListAdapter(Context context,
      List<? extends Map<String, ?>> groupData, int groupLayout,
      String[] groupFrom, int[] groupTo,
      List<? extends List<? extends Map<String, ?>>> childData,
      int childLayout, String[] childFrom, int[] childTo) {
    super(context, groupData, groupLayout, groupFrom, groupTo, childData,
        childLayout, childFrom, childTo);
    this.context = (Activity) context;
    this.hm = childData;
    this.childFrom = childFrom;
  }

  @Override
  public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
    View row = convertView;
    
    if(row==null) {    
      LayoutInflater inflater = context.getLayoutInflater();
      row = inflater.inflate(R.layout.contactlist_entry, null, false);
    }
    
    ContactEntry ce = (ContactEntry)hm.get(groupPosition).get(childPosition).get("contactJid");
    ce.updateFields();
    TextView label = (TextView)row.findViewById(R.id.contactlist_item);
    TextView status = (TextView)row.findViewById(R.id.contactlist_status);
    
    label.setText(ce.toString());
    String message = ce.getPresenceMessage();
    if(message == null) {
      status.setVisibility(View.GONE);
    } else {
      status.setText(message);
    }
    
    ImageView icon = (ImageView)row.findViewById(R.id.contactlist_pic);
    
    int presenceMode = ce.getPresenceMode();
    int presenceType = ce.getPresenceType();
    
    
    
    
    if(presenceType == Constants.PRESENCETYPE_AVAILABLE) {
      if(presenceMode == Constants.PRESENCEMODE_AWAY) {
        icon.setImageResource(R.drawable.presence_away);
      } else if (presenceMode == Constants.PRESENCEMODE_XA) {
        icon.setImageResource(R.drawable.kopete_all_away);
      } else if (presenceMode == Constants.PRESENCEMODE_DND) {
        icon.setImageResource(R.drawable.presence_unknown);
      } else if (presenceMode == Constants.PRESENCEMODE_CHAT) {
        icon.setImageResource(R.drawable.metacontact_online);
      } else {
        icon.setImageResource(R.drawable.presence_online);
      }
    } else {
      icon.setImageResource(R.drawable.kopete_offline);
    }
    

    return row;
  }

  @Override
  public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
    return super.getGroupView(groupPosition, isExpanded, convertView, parent);
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.