compareNewestFirst static method

int compareNewestFirst(
  1. Message a,
  2. Message b
)

最新在前(sequence desc, send_time desc) seq<=0 的未同步消息视为最新(避免 AI 落库暂无 seq 时被排到列表顶部「消失」)

Implementation

static int compareNewestFirst(Message a, Message b) {
  final aSynced = a.seq > 0;
  final bSynced = b.seq > 0;
  if (aSynced != bSynced) return aSynced ? 1 : -1;
  if (aSynced) {
    final bySeq = b.seq.compareTo(a.seq);
    if (bySeq != 0) return bySeq;
  }
  return b.sendTime.compareTo(a.sendTime);
}