sortFriends function
对好友列表进行自定义排序
Implementation
List<SearchResult<ContactInfo>> sortFriends(
List<SearchResult<ContactInfo>> friends) {
final sortedFriends = List<SearchResult<ContactInfo>>.from(friends);
sortedFriends.sort((a, b) {
final nameA = a.data.getName();
final nameB = b.data.getName();
// 空名称处理
if (nameA.isEmpty && nameB.isEmpty) return 0;
if (nameA.isEmpty) return 1;
if (nameB.isEmpty) return -1;
// 获取排序键
final sortKeyA = _getSortKey(nameA);
final sortKeyB = _getSortKey(nameB);
// 按类型优先级排序:字母/拼音 > 其他字符
final typeA = _getCharType(nameA);
final typeB = _getCharType(nameB);
if (typeA != typeB) {
return typeA.compareTo(typeB);
}
// 同类型按字典序排序
return sortKeyA.compareTo(sortKeyB);
});
return sortedFriends;
}