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