private void enumerateMessages() { idsOfTheMessagesToFind.clear(); for (ConversationOneMessage oMsg : oMsgs) { oMsg.listOrder = 0; oMsg.historyOrder = 0; } OrderCounters order = new OrderCounters(); for (int ind = oMsgs.size() - 1; ind >= 0; ind--) { ConversationOneMessage oMsg = oMsgs.get(ind); if (oMsg.listOrder < 0) { continue; } enumerateBranch(oMsg, order, 0); } }
private void enumerateBranch(ConversationOneMessage oMsg, OrderCounters order, int indent) { if (!addMessageIdToFind(oMsg.msgId)) { return; } int indentNext = indent; oMsg.historyOrder = order.history++; oMsg.listOrder = order.list--; oMsg.indentLevel = indent; if ((oMsg.nReplies > 1 || oMsg.nParentReplies > 1) && indentNext < MAX_INDENT_LEVEL) { indentNext++; } for (int ind = oMsgs.size() - 1; ind >= 0; ind--) { ConversationOneMessage reply = oMsgs.get(ind); if (reply.inReplyToMsgId == oMsg.msgId) { reply.nParentReplies = oMsg.nReplies; enumerateBranch(reply, order, indentNext); } } }