public CommonState getCommonState() { boolean disabled = false; boolean offline = false; boolean waiting = false; boolean connecting = false; boolean roster = false; boolean online = false; for (AccountItem accountItem : accountItems.values()) { ConnectionState state = accountItem.getState(); if (state == ConnectionState.connected) online = true; if (RosterManager.getInstance().isRosterReceived(accountItem.getAccount())) roster = true; if (state == ConnectionState.connecting || state == ConnectionState.authentication) connecting = true; if (state == ConnectionState.waiting) waiting = true; if (accountItem.isEnabled()) offline = true; disabled = true; } if (online) return CommonState.online; else if (roster) return CommonState.roster; else if (connecting) return CommonState.connecting; if (waiting) return CommonState.waiting; else if (offline) return CommonState.offline; else if (disabled) return CommonState.disabled; else return CommonState.empty; }