// Path: libs_external/Abewy_Extended/src/com/abewy/android/extended/items/BaseType.java
// public abstract class BaseType
// {
// 	public static final int	HEADER			= 1;
// 	public static final int	PROGRESS		= 2;
// 	public static final int	TEXT_BUTTON		= 3;
// 	public static final int	TEXT			= 4;
// 	public static final int	TITLE			= 5;
// 	public static final int	TITLE_TEXT		= 6;
// 	public static final int	TITLE_TWO_ITEM	= 7;
// 
// 	/**
// 	 * Return an unique data type to associate with a list view item
// 	 */
// 	public abstract int getItemViewType();
// 
// 	public abstract String getItemPrimaryLabel();
// }
// 
// Path: src/com/hb/views/PinnedSectionListView.java
// public static interface PinnedSectionListAdapter extends ListAdapter {
// 	/** This method shall return 'true' if views of given type has to be pinned. */
// 	boolean isItemViewTypePinned(int viewType);
// }


import java.util.List;
import android.util.Log;
import android.widget.AbsListView;
import android.widget.SectionIndexer;
import com.abewy.android.extended.items.BaseType;
import com.hb.views.PinnedSectionListView.PinnedSectionListAdapter;
/**
 * @author Jonathan
 */

package com.abewy.android.apps.contacts.adapter;


public class ContactListAdapter extends MultiObjectAdapter implements SectionIndexer, PinnedSectionListAdapter
{
	private static String	sections	= "ABCDEFGHIJKLMNOPQRSTUVWXYZ#";
	private static String[]	sectionsArr;
	private int[]			sectionMap;
	private int[]			positionMap;

	public ContactListAdapter(AbsListView listView)
	{
		super(listView);
		sectionMap = new int[sections.length()];
		positionMap = new int[1];
	}

	public ContactListAdapter(AbsListView listView, int layoutType)
	{
		super(listView, layoutType);
		sectionMap = new int[sections.length()];
		positionMap = new int[1];
	}

	@Override
// Path: libs_external/Abewy_Extended/src/com/abewy/android/extended/items/BaseType.java
// public abstract class BaseType
// {
// 	public static final int	HEADER			= 1;
// 	public static final int	PROGRESS		= 2;
// 	public static final int	TEXT_BUTTON		= 3;
// 	public static final int	TEXT			= 4;
// 	public static final int	TITLE			= 5;
// 	public static final int	TITLE_TEXT		= 6;
// 	public static final int	TITLE_TWO_ITEM	= 7;
// 
// 	/**
// 	 * Return an unique data type to associate with a list view item
// 	 */
// 	public abstract int getItemViewType();
// 
// 	public abstract String getItemPrimaryLabel();
// }
// 
// Path: src/com/hb/views/PinnedSectionListView.java
// public static interface PinnedSectionListAdapter extends ListAdapter {
// 	/** This method shall return 'true' if views of given type has to be pinned. */
// 	boolean isItemViewTypePinned(int viewType);
// }


// Path: src/com/abewy/android/apps/contacts/adapter/ContactListAdapter.java
import java.util.List;
import android.util.Log;
import android.widget.AbsListView;
import android.widget.SectionIndexer;
import com.abewy.android.extended.items.BaseType;
import com.hb.views.PinnedSectionListView.PinnedSectionListAdapter;

/**
 * @author Jonathan
 */

package com.abewy.android.apps.contacts.adapter;


public class ContactListAdapter extends MultiObjectAdapter implements SectionIndexer, PinnedSectionListAdapter
{
	private static String	sections	= "ABCDEFGHIJKLMNOPQRSTUVWXYZ#";
	private static String[]	sectionsArr;
	private int[]			sectionMap;
	private int[]			positionMap;

	public ContactListAdapter(AbsListView listView)
	{
		super(listView);
		sectionMap = new int[sections.length()];
		positionMap = new int[1];
	}

	public ContactListAdapter(AbsListView listView, int layoutType)
	{
		super(listView, layoutType);
		sectionMap = new int[sections.length()];
		positionMap = new int[1];
	}

	@Override
	public void setData(List<BaseType> data)