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);
}