/**
   * Converts the presence status to the value defined for ImProvider.
   *
   * @param presence The presence from the IM engine.
   * @return The status value defined in for ImProvider.
   */
  public static int convertPresenceStatus(Presence presence) {
    switch (presence.getStatus()) {
      case Presence.AVAILABLE:
        return Imps.Presence.AVAILABLE;

      case Presence.IDLE:
        return Imps.Presence.IDLE;

      case Presence.AWAY:
        return Imps.Presence.AWAY;

      case Presence.DO_NOT_DISTURB:
        return Imps.Presence.DO_NOT_DISTURB;

      case Presence.OFFLINE:
        return Imps.Presence.OFFLINE;
    }

    // impossible...
    Log.e(TAG, "Illegal presence status value " + presence.getStatus());
    return Imps.Presence.AVAILABLE;
  }