Hibok
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 
 
 

82 行
2.0 KiB

  1. import 'package:chat/models/group_info_server_model.dart';
  2. import 'package:chat/proto/all.pbserver.dart';
  3. import 'package:lpinyin/lpinyin.dart';
  4. class GroupMemberModel {
  5. int memberId;
  6. int identity;
  7. String refName;
  8. String nickName;
  9. String avtar;
  10. int inGroup;
  11. String nameTag;
  12. GroupMemberModel(
  13. {this.memberId,
  14. this.identity,
  15. this.refName,
  16. this.nickName,
  17. this.inGroup,
  18. this.nameTag,
  19. this.avtar});
  20. GroupMemberModel.fromPb(GroupMember member) {
  21. memberId = member.info.id;
  22. identity = member.identity.value;
  23. refName = member.name;
  24. nickName = member.info.niceName;
  25. avtar = member.info.headUrl;
  26. inGroup = member.effectiveUser ? 1 : 0;
  27. }
  28. GroupMemberModel.fromServerMember(GroupServerMembers member) {
  29. memberId = member.info.id;
  30. identity = member.identity;
  31. refName = member.name;
  32. nickName = member.info.niceName;
  33. avtar = member.info.headUrl;
  34. inGroup = member.effectiveUser ? 1 : 0;
  35. }
  36. GroupMemberModel.fromBaseInfo(BaseUserInfo baseInfo) {
  37. memberId = baseInfo.id;
  38. identity = 0;
  39. inGroup = 1;
  40. refName = baseInfo.niceName;
  41. nickName = baseInfo.niceName;
  42. avtar = baseInfo.headUrl;
  43. }
  44. GroupMemberModel.fromJson(Map<String, dynamic> json) {
  45. memberId = json['memberId'];
  46. identity = json['identity'] ?? 0;
  47. refName = json['refName'];
  48. nickName = json['nickName'];
  49. avtar = json['avtar'];
  50. inGroup = json['inGroup'] ?? 1;
  51. }
  52. getNameTag() {
  53. var origin = refName;
  54. if (origin == null || origin.length == 0) {
  55. origin = nickName;
  56. }
  57. String pinyin = PinyinHelper.getPinyinE(origin);
  58. String tag = '#';
  59. if (pinyin == null || pinyin.length == 0) {
  60. tag = '#';
  61. } else {
  62. tag = pinyin.substring(0, 1).toUpperCase();
  63. }
  64. if (tag == 'Ẩ') {
  65. tag = 'A';
  66. } else if (tag == 'Đ') {
  67. tag = 'D';
  68. }
  69. this.nameTag = tag;
  70. }
  71. }