public void signupAndLogin(String user, String password, String nickname, byte[] avatar)
      throws SmackInvocationException {
    connect();

    Map<String, String> attributes = new HashMap<String, String>();
    attributes.put("name", nickname);
    try {
      AccountManager.getInstance(con).createAccount(user, password, attributes);
    } catch (Exception e) {
      throw new SmackInvocationException(e);
    }

    login(user, password);

    vCardHelper.save(nickname, avatar);
  }
  public UserProfile search(String username) throws SmackInvocationException {
    String name = StringUtils.parseName(username);
    String jid = null;
    if (name == null || name.trim().length() == 0) {
      jid = username + "@" + con.getServiceName();
    } else {
      jid = StringUtils.parseBareAddress(username);
    }

    if (vCardHelper == null) {
      return null;
    }

    VCard vCard = vCardHelper.loadVCard(jid);
    String nickname = vCard.getNickName();

    return nickname == null ? null : new UserProfile(jid, vCard);
  }
  public void saveStatus(String status) throws SmackInvocationException {
    vCardHelper.saveStatus(status);

    contactHelper.broadcastStatus(status);
  }
 public VCard loadVCard() throws SmackInvocationException {
   return vCardHelper.loadVCard();
 }
 public VCard loadVCard(String jid) throws SmackInvocationException {
   return vCardHelper.loadVCard(jid);
 }
 public String loadStatus() throws SmackInvocationException {
   return vCardHelper.loadStatus();
 }
  public String getNickname(String jid) throws SmackInvocationException {
    VCard vCard = vCardHelper.loadVCard(jid);

    return vCard.getNickName();
  }