public void sendMessage(String text, boolean isResend) { if (mConnection.getState() != ImConnection.LOGGED_IN) { // connection has been suspended, save the message without send it long now = System.currentTimeMillis(); insertMessageInDb(null, text, now, Imps.MessageType.POSTPONED); return; } org.awesomeapp.messenger.model.Message msg = new org.awesomeapp.messenger.model.Message(text); msg.setID(nextID()); msg.setFrom(mConnection.getLoginUser().getAddress()); msg.setType(Imps.MessageType.OUTGOING); long sendTime = System.currentTimeMillis(); if (!isResend) { insertMessageInDb(null, text, sendTime, msg.getType(), 0, msg.getID()); insertOrUpdateChat(text); } int newType = mChatSession.sendMessageAsync(msg); if (msg.getDateTime() != null) sendTime = msg.getDateTime().getTime(); updateMessageInDb(msg.getID(), newType, sendTime); }