Beispiel #1
0
  /**
   * Determines whether a specific <code>ChatRoom</code> is private i.e. represents a one-to-one
   * conversation which is not a channel. Since the interface {@link ChatRoom} does not expose the
   * private property, an heuristic is used as a workaround: (1) a system <code>ChatRoom</code> is
   * obviously not private and (2) a <code>ChatRoom</code> is private if it has only one <code>
   * ChatRoomMember</code> who is not the local user.
   *
   * @param chatRoom the <code>ChatRoom</code> to be determined as private or not
   * @return <tt>true</tt> if the specified <code>ChatRoom</code> is private; otherwise,
   *     <tt>false</tt>
   */
  public static boolean isPrivate(ChatRoom chatRoom) {
    if (!chatRoom.isSystem() && chatRoom.isJoined() && (chatRoom.getMembersCount() == 1)) {
      String nickname = chatRoom.getUserNickname();

      if (nickname != null) {
        for (ChatRoomMember member : chatRoom.getMembers())
          if (nickname.equals(member.getName())) return false;
        return true;
      }
    }
    return false;
  }