pinned function
A comparator which prioritizes participants who are pinned.
Implementation
int pinned(CallParticipantState a, CallParticipantState b) {
if (a.pin != null && b.pin != null) {
if (!a.pin!.isLocalPin && b.pin!.isLocalPin) return -1;
if (a.pin!.isLocalPin && !b.pin!.isLocalPin) return 1;
if (a.pin!.pinnedAt.isAfter(b.pin!.pinnedAt)) return -1;
if (a.pin!.pinnedAt.isBefore(b.pin!.pinnedAt)) return 1;
}
if (a.pin != null && b.pin == null) return -1;
if (a.pin == null && b.pin != null) return 1;
return 0;
}