package cn.edu.tsinghua.hpc.tcontacts.syncaction;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.client.ClientProtocolException;
import com.ccit.phone.CCITSC;
import com.ccit.phone.LoginView;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Handler;
import android.pim.vcard.VCardParser;
import android.pim.vcard.VCardParser_V21;
import android.pim.vcard.exception.VCardException;
import cn.edu.tsinghua.hpc.syncbroker.ContactRecord;
import cn.edu.tsinghua.hpc.syncbroker.ElementNotFound;
import cn.edu.tsinghua.hpc.syncbroker.SyncRecord;
import cn.edu.tsinghua.hpc.tcontacts.pim.ContactStruct;
import cn.edu.tsinghua.hpc.tcontacts.pim.VCardConfig;
import cn.edu.tsinghua.hpc.tcontacts.pim.VCardDataBuilder;
import cn.edu.tsinghua.hpc.tcontacts.service.BootReceiver;
public class ContactsUtility {
public static void notifySyncService(Context ctx) {
Intent i = new Intent(ctx, BootReceiver.class);
i.setAction(BootReceiver.TSYNC_REQUEST);
ctx.sendBroadcast(i);
}
public static int setGuid(Context ctx, Uri uri, int guid) {
ContentValues values = new ContentValues();
values.put("guid", guid);
return ctx.getContentResolver().update(uri, values, null, null);
}
public static int markContact(Context ctx, Uri uri, String syncState) {
ContentValues values = new ContentValues();
values.put("sync_state", syncState);
return ctx.getContentResolver().update(uri, values, null, null);
}
public static List<ContactStruct> getInfoHolderFromResult(
List<SyncRecord> records) throws ClientProtocolException,
ElementNotFound, IOException, VCardException {
List<ContactStruct> mContactsInfoHolder = new ArrayList<ContactStruct>();
// TODO:
VCardDataBuilder builder;
for (SyncRecord s : records) {
ContactRecord r = (ContactRecord) s;
builder = new VCardDataBuilder("UTF-8", "UTF-8", false,
VCardConfig.VCARD_TYPE_V21_GENERIC, null);
VCardParser p = new VCardParser_V21();
p.parse(new ByteArrayInputStream(r.getData().getBytes()), "UTF-8",
builder);
ContactStruct contact = builder.mLastContactStruct;
contact.guid = r.getGuid();
mContactsInfoHolder.add(contact);
}
return mContactsInfoHolder;
}
// /**
// * @author zhangbing@inpurworld.com
// * @param ctx
// * @return LoginView
// * @throws Exception
// */
// public static LoginView login(Context ctx,Handler mHandler) throws Exception{
//
// CCITSC mCCIT = new CCITSC(ctx, "221.122.98.38", "8808",mHandler);
//// CCITSC mCCIT = new CCITSC(ctx, "211.139.191.207", "8080");
// mCCIT.loginInit(false);
// LoginView login = mCCIT.requestLogin(false);
// return login;
//
// }
}