public void addContact(Contact contact) {
   if (TextUtils.isEmpty(contact.getContactNumber())) {
     contact.setContactNumber(contact.getUserId());
   }
   ContentValues contentValues = prepareContactValues(contact);
   dbHelper.getWritableDatabase().insert(CONTACT, null, contentValues);
   dbHelper.close();
 }
 public void updateContact(Contact contact) {
   ContentValues contentValues = prepareContactValues(contact);
   dbHelper
       .getWritableDatabase()
       .update(
           CONTACT,
           contentValues,
           MobiComDatabaseHelper.USERID + "=?",
           new String[] {contact.getUserId()});
   dbHelper.close();
 }
 /**
  * Form a single contact from cursor
  *
  * @param cursor
  * @return
  */
 public Contact getContact(Cursor cursor) {
   Contact contact = new Contact();
   contact.setFullName(cursor.getString(cursor.getColumnIndex(MobiComDatabaseHelper.FULL_NAME)));
   contact.setUserId(cursor.getString(cursor.getColumnIndex(MobiComDatabaseHelper.USERID)));
   contact.setLocalImageUrl(
       cursor.getString(cursor.getColumnIndex(MobiComDatabaseHelper.CONTACT_IMAGE_LOCAL_URI)));
   contact.setImageURL(
       cursor.getString(cursor.getColumnIndex(MobiComDatabaseHelper.CONTACT_IMAGE_URL)));
   String contactNumber =
       cursor.getString(cursor.getColumnIndex(MobiComDatabaseHelper.CONTACT_NO));
   if (TextUtils.isEmpty(contactNumber)) {
     contact.setContactNumber(
         cursor.getString(cursor.getColumnIndex(MobiComDatabaseHelper.USERID)));
   } else {
     contact.setContactNumber(
         cursor.getString(cursor.getColumnIndex(MobiComDatabaseHelper.CONTACT_NO)));
   }
   contact.setApplicationId(
       cursor.getString(cursor.getColumnIndex(MobiComDatabaseHelper.APPLICATION_ID)));
   Long connected = cursor.getLong(cursor.getColumnIndex(MobiComDatabaseHelper.CONNECTED));
   contact.setConnected(connected != 0 && connected.intValue() == 1);
   contact.setLastSeenAt(
       cursor.getLong(cursor.getColumnIndex(MobiComDatabaseHelper.LAST_SEEN_AT_TIME)));
   contact.processContactNumbers(context);
   return contact;
 }
 public void deleteContact(Contact contact) {
   deleteContactById(contact.getUserId());
 }
  public ContentValues prepareContactValues(Contact contact) {
    ContentValues contentValues = new ContentValues();
    if (!TextUtils.isEmpty(contact.getFullName())) {
      contentValues.put(MobiComDatabaseHelper.FULL_NAME, contact.getFullName());
    }
    contentValues.put(MobiComDatabaseHelper.CONTACT_NO, contact.getContactNumber());
    if (!TextUtils.isEmpty(contact.getImageURL())) {
      contentValues.put(MobiComDatabaseHelper.CONTACT_IMAGE_URL, contact.getImageURL());
    }
    if (!TextUtils.isEmpty(contact.getLocalImageUrl())) {
      contentValues.put(MobiComDatabaseHelper.CONTACT_IMAGE_LOCAL_URI, contact.getLocalImageUrl());
    }
    contentValues.put(MobiComDatabaseHelper.USERID, contact.getUserId());
    if (!TextUtils.isEmpty(contact.getEmailId())) {
      contentValues.put(MobiComDatabaseHelper.EMAIL, contact.getEmailId());
    }
    if (!TextUtils.isEmpty(contact.getApplicationId())) {
      contentValues.put(MobiComDatabaseHelper.APPLICATION_ID, contact.getApplicationId());
    }

    contentValues.put(MobiComDatabaseHelper.CONNECTED, contact.isConnected() ? 1 : 0);
    if (contact.getLastSeenAt() != 0) {
      contentValues.put(MobiComDatabaseHelper.LAST_SEEN_AT_TIME, contact.getLastSeenAt());
    }
    return contentValues;
  }