@Override public void archive(IConversation conversation, boolean archive) { if (conversation.isSelected()) { final IConversation nextConversation = getNextConversation(); if (nextConversation != null) { // don't want to change selected item immediately new Handler() .postDelayed( new Runnable() { @Override public void run() { if (conversationsList != null) { setCurrentConversation( nextConversation, ConversationChangeRequester.ARCHIVED_RESULT); } } }, ARCHIVE_DELAY); } } conversation.setArchived(archive); // Set current conversation to unarchived if (!archive) { setCurrentConversation( conversation, ConversationChangeRequester.CONVERSATION_LIST_UNARCHIVED_CONVERSATION); } }