setMessages method
Implementation
void setMessages(List<Message> messages) {
_messageGroups.clear();
_unreadMessageIds.clear();
messages.sort((a, b) {
final aDate = DateTime.tryParse(a.timestamp);
final bDate = DateTime.tryParse(b.timestamp);
// 날짜 파싱이 실패한 경우 처리
if (aDate == null || bDate == null) {
if (aDate == null && bDate == null) return 0;
if (aDate == null) return 1;
return -1;
}
// 시간 비교
final timeComparison = aDate.compareTo(bDate);
// 시간이 다르면 시간 순으로 정렬
if (timeComparison != 0) {
return timeComparison;
}
// 시간이 같은 경우 커스텀 정렬 적용
if (_customSortCallback != null) {
return _customSortCallback(a, b);
}
return 0;
});
for (final message in messages) {
addMessage(message);
}
}