ITEEDU

ContactAPI 

package com.iteedu.www;

import java.util.ArrayList;

import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.os.Build;

public abstract class ContactAPI {
	private static ContactAPI api;

	public static ContactAPI getAPI() {
		if (api == null) {
			String apiClass;
			if (Integer.parseInt(Build.VERSION.SDK) >= Build.VERSION_CODES.ECLAIR) {
				apiClass = "com.iteedu.www.ContactAPISdk5";
			} else {
				apiClass = "com.iteedu.www.ContactAPISdk3";
			}

			try {
				Class<? extends ContactAPI> realClass = Class.forName(apiClass)
						.asSubclass(ContactAPI.class);
				api = realClass.newInstance();
			} catch (Exception e) {
				throw new IllegalStateException(e);
			}
		}
		return api;
	}

	public abstract Intent getContactIntent();

	public abstract ContactList newContactList();
	
	public abstract ContactNameList newContactNameList();

	public abstract Cursor getCur();

	public abstract void setCur(Cursor cur);

	public abstract ContentResolver getCr();

	public abstract void setCr(ContentResolver cr);
	
	public abstract ArrayList<Phone> getPhoneNumbers(String id);
	public abstract ArrayList<Email> getEmailAddresses(String id);
	public abstract ArrayList<Address> getContactAddresses(String id);
	public abstract ArrayList<String> getContactNotes(String id);
	public abstract Organization getContactOrg(String id);
	public abstract ArrayList<IM> getIM(String id);
	public abstract Contact getContactByID(String id);
	public abstract ContactName getContactNameByID(String id);
}