private IContactList getContactList(IImConnection conn) {
    if (conn == null) {
      return null;
    }

    try {
      IContactListManager contactListMgr = conn.getContactListManager();
      String listName = getSelectedListName();
      if (!TextUtils.isEmpty(listName)) {
        return contactListMgr.getContactList(listName);
      } else {
        // Use the default list
        List<IBinder> lists = contactListMgr.getContactLists();
        for (IBinder binder : lists) {
          IContactList list = IContactList.Stub.asInterface(binder);
          if (list.isDefault()) {
            return list;
          }
        }
        // No default list, use the first one as default list
        if (!lists.isEmpty()) {
          return IContactList.Stub.asInterface(lists.get(0));
        }
        return null;
      }
    } catch (RemoteException e) {
      // If the service has died, there is no list for now.
      return null;
    }
  }
  /** @param value */
  protected void setContactNickname(String aAddress, String aNickname, IImConnection conn) {
    try {

      IContactListManager listManager = conn.getContactListManager();
      int result = listManager.setContactName(aAddress, aNickname);
      if (result != ImErrorInfo.NO_ERROR) {
        Toast.makeText(
                mContext, mContext.getString(R.string.error_prefix) + result, Toast.LENGTH_LONG)
            .show(); // TODO -LS error handling
      }
    } catch (Exception e) {
      Toast.makeText(
              mContext,
              mContext.getString(R.string.error_prefix) + e.getMessage(),
              Toast.LENGTH_LONG)
          .show(); // TODO -LS error handling
    }
    mFilterList.invalidate();
    final InputMethodManager imm =
        (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(getWindowToken(), 0);
  }