IMSDK+ShowAble.m 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. //
  2. // TIMUserProfile+ShowAble.m
  3. // TIMChat
  4. //
  5. // Created by AlexiChen on 16/3/1.
  6. // Copyright © 2016年 AlexiChen. All rights reserved.
  7. //
  8. #import "IMSDK+ShowAble.h"
  9. @implementation TIMUserProfile (ShowAble)
  10. // 显示的标题
  11. - (NSString *)showTitle
  12. {
  13. return ![NSString isEmpty:self.remark] ? self.remark : ![NSString isEmpty:self.nickname] ? self.nickname : self.identifier;
  14. }
  15. // 显示图像的地址
  16. - (NSURL *)showIconUrl
  17. {
  18. return [NSURL URLWithString:self.faceURL];
  19. }
  20. - (NSString *)getAllowType
  21. {
  22. switch (self.allowType)
  23. {
  24. case TIM_FRIEND_ALLOW_ANY:
  25. {
  26. return ASLocalizedString(@"同意任何用户加好友");
  27. }
  28. break;
  29. case TIM_FRIEND_NEED_CONFIRM:
  30. {
  31. return ASLocalizedString(@"需要验证");
  32. }
  33. break;
  34. case TIM_FRIEND_DENY_ANY:
  35. {
  36. return ASLocalizedString(@"拒绝任何人加好友");
  37. }
  38. break;
  39. default:
  40. break;
  41. }
  42. }
  43. + (NSDictionary *)allowTypeTips
  44. {
  45. return @{ASLocalizedString(@"同意任何用户加好友"): @(TIM_FRIEND_ALLOW_ANY), ASLocalizedString(@"需要验证"): @(TIM_FRIEND_NEED_CONFIRM), ASLocalizedString(@"拒绝任何人加好友"): @(TIM_FRIEND_DENY_ANY)};
  46. }
  47. @end
  48. @implementation TIMFriendPendencyItem (ShowAble)
  49. // 显示的标题
  50. - (NSString *)showTitle
  51. {
  52. return ![NSString isEmpty:self.nickname] ? self.nickname : self.identifier;
  53. }
  54. // 显示图像的地址
  55. - (NSURL *)showIconUrl
  56. {
  57. return nil;
  58. }
  59. - (NSString *)applyInfo
  60. {
  61. return self.addWording;
  62. }
  63. - (BOOL)isSendByMe
  64. {
  65. return self.type == TIM_PENDENCY_GET_SEND_OUT;
  66. }
  67. @end
  68. @implementation TIMFriendFutureItem (ShowAble)
  69. // 显示的标题
  70. - (NSString *)showTitle
  71. {
  72. return [self.profile showTitle];
  73. }
  74. // 显示图像的地址
  75. - (NSURL *)showIconUrl
  76. {
  77. return [self.profile showIconUrl];
  78. }
  79. ///**
  80. // * 收到的未决请求
  81. // */
  82. //TIM_FUTURE_FRIEND_PENDENCY_IN_TYPE = 0x1,
  83. //
  84. ///**
  85. // * 发出去的未决请求
  86. // */
  87. //TIM_FUTURE_FRIEND_PENDENCY_OUT_TYPE = 0x2,
  88. //
  89. ///**
  90. // * 推荐好友
  91. // */
  92. //TIM_FUTURE_FRIEND_RECOMMEND_TYPE = 0x4,
  93. //
  94. ///**
  95. // * 已决好友
  96. // */
  97. //TIM_FUTURE_FRIEND_DECIDE_TYPE = 0x8,
  98. // 申请理由
  99. - (NSString *)detaiInfo
  100. {
  101. switch (self.type)
  102. {
  103. case TIM_FUTURE_FRIEND_PENDENCY_IN_TYPE:
  104. {
  105. // 如果已添加到到列表
  106. return [NSString stringWithFormat:ASLocalizedString(@"请求理由:%@"), self.addWording];
  107. }
  108. break;
  109. case TIM_FUTURE_FRIEND_PENDENCY_OUT_TYPE:
  110. {
  111. // 如果已添加到到列表
  112. return [NSString stringWithFormat:ASLocalizedString(@"添加理由:%@"), self.addWording];
  113. }
  114. break;
  115. case TIM_FUTURE_FRIEND_RECOMMEND_TYPE:
  116. {
  117. // 如果已添加到到列表
  118. return [NSString stringWithFormat:ASLocalizedString(@"推荐好友:%@"), self.addWording];
  119. }
  120. break;
  121. case TIM_FUTURE_FRIEND_DECIDE_TYPE:
  122. {
  123. // 已决列表里面全部是已经同意的
  124. return ASLocalizedString(@"已添加");
  125. }
  126. break;
  127. default:
  128. break;
  129. }
  130. return nil;
  131. }
  132. - (BOOL)isMyFriend
  133. {
  134. IMAUser *usr = [[IMAUser alloc] initWith:self.identifier];
  135. return [[IMAPlatform sharedInstance].contactMgr isMyFriend:usr];
  136. }
  137. - (BOOL)isSendByMe
  138. {
  139. return self.type == TIM_FUTURE_FRIEND_PENDENCY_OUT_TYPE;
  140. }
  141. - (BOOL)isPendency
  142. {
  143. return self.type == TIM_FUTURE_FRIEND_PENDENCY_IN_TYPE ;
  144. }
  145. - (BOOL)isDecide
  146. {
  147. return self.type == TIM_FUTURE_FRIEND_DECIDE_TYPE;
  148. }
  149. - (BOOL)isRecormend
  150. {
  151. return self.type == TIM_FUTURE_FRIEND_RECOMMEND_TYPE;
  152. }
  153. @end
  154. @implementation TIMGroupPendencyItem (ShowAble)
  155. - (NSString *)showTitle
  156. {
  157. //未处理
  158. if (self.handleStatus == TIM_GROUP_PENDENCY_HANDLE_STATUS_UNHANDLED)
  159. {
  160. return self.fromUser;
  161. }
  162. else
  163. {
  164. IMAUser *user = [[IMAUser alloc] initWith:self.toUser];
  165. BOOL isToUserIsMe = [[IMAPlatform sharedInstance].host isMe:user];
  166. NSString *toUserStr = isToUserIsMe ? ASLocalizedString(@"你"): self.toUser;
  167. return toUserStr;
  168. }
  169. }
  170. - (NSURL *)showIconUrl
  171. {
  172. return nil;
  173. }
  174. - (NSString *)applyInfo
  175. {
  176. if (self.handleStatus == TIM_GROUP_PENDENCY_HANDLE_STATUS_UNHANDLED)
  177. {
  178. switch (self.getType)
  179. {
  180. case TIM_GROUP_PENDENCY_GET_TYPE_JOIN:
  181. return [NSString stringWithFormat:ASLocalizedString(@"申请理由:%@"), self.requestMsg];
  182. break;
  183. case TIM_GROUP_PENDENCY_GET_TYPE_INVITE:
  184. return [NSString stringWithFormat:ASLocalizedString(@"邀请理由:%@"), self.requestMsg];
  185. break;
  186. default:
  187. break;
  188. }
  189. }
  190. else
  191. {
  192. if (self.handleResult == TIM_GROUP_PENDENCY_HANDLE_RESULT_REFUSE)
  193. {
  194. return [NSString stringWithFormat:ASLocalizedString(@"拒绝理由:%@"), self.handledMsg];
  195. }
  196. else
  197. {
  198. return [NSString stringWithFormat:ASLocalizedString(@"同意理由:%@"), self.handledMsg];
  199. }
  200. }
  201. return nil;
  202. }
  203. - (NSString *)detailInfo
  204. {
  205. IMAUser *user = [[IMAUser alloc] initWith:self.toUser];
  206. BOOL isToUserIsMe = [[IMAPlatform sharedInstance].host isMe:user];
  207. NSString *toUserStr = isToUserIsMe ? ASLocalizedString(@"你"): self.toUser;
  208. if (self.handleStatus == TIM_GROUP_PENDENCY_HANDLE_STATUS_UNHANDLED)
  209. {
  210. switch (self.getType)
  211. {
  212. case TIM_GROUP_PENDENCY_GET_TYPE_JOIN:
  213. return [NSString stringWithFormat:ASLocalizedString(@"申请加入群%@"),self.groupId];
  214. break;
  215. case TIM_GROUP_PENDENCY_GET_TYPE_INVITE:
  216. return [NSString stringWithFormat:ASLocalizedString(@"邀请%@加入群%@"), toUserStr, self.groupId];
  217. break;
  218. default:
  219. break;
  220. }
  221. }
  222. else
  223. {
  224. switch (self.getType)
  225. {
  226. case TIM_GROUP_PENDENCY_GET_TYPE_JOIN:
  227. return [NSString stringWithFormat:ASLocalizedString(@"已同意%@进群%@"),self.fromUser, self.groupId];
  228. break;
  229. case TIM_GROUP_PENDENCY_GET_TYPE_INVITE:
  230. return [NSString stringWithFormat:ASLocalizedString(@"受%@邀请进群%@"), self.fromUser, self.groupId];
  231. break;
  232. default:
  233. break;
  234. }
  235. }
  236. return nil;
  237. }
  238. - (NSString *)actionTitle
  239. {
  240. //未处理
  241. if (self.handleStatus == TIM_GROUP_PENDENCY_HANDLE_STATUS_UNHANDLED)
  242. {
  243. return ASLocalizedString(@"审核");
  244. }
  245. else// if (self.handleStatus == TIM_GROUP_PENDENCY_HANDLE_STATUS_OTHER_HANDLED | self.handleStatus == TIM_GROUP_PENDENCY_HANDLE_STATUS_OPERATOR_HANDLED)
  246. {
  247. if (self.handleResult == TIM_GROUP_PENDENCY_HANDLE_RESULT_REFUSE)
  248. {
  249. return ASLocalizedString(@"已拒绝");
  250. }
  251. else if (self.handleResult == TIM_GROUP_PENDENCY_HANDLE_RESULT_AGREE)
  252. {
  253. return ASLocalizedString(@"已同意");
  254. }
  255. }
  256. return nil;
  257. }
  258. - (BOOL)actionEnable
  259. {
  260. if (self.handleStatus == TIM_GROUP_PENDENCY_HANDLE_STATUS_UNHANDLED)
  261. {
  262. return YES;
  263. }
  264. else
  265. {
  266. return NO;
  267. }
  268. }
  269. @end
  270. @implementation TIMGroupInfo (ShowAble)
  271. + (instancetype)instanceFrom:(TIMCreateGroupInfo *)info
  272. {
  273. if (!info)
  274. {
  275. return nil;
  276. }
  277. TIMGroupInfo *gi = [[TIMGroupInfo alloc] init];
  278. gi.group = info.group;
  279. gi.groupName = info.groupName;
  280. gi.groupType = info.groupType;
  281. gi.notification = info.notification;
  282. gi.introduction = info.introduction;
  283. gi.faceURL = info.faceURL;
  284. return gi;
  285. }
  286. - (NSString *)showTitle
  287. {
  288. return self.groupName;
  289. }
  290. - (NSURL *)showIconUrl
  291. {
  292. return !self.faceURL ? [NSURL URLWithString:self.faceURL] : nil;
  293. }
  294. - (NSString *)groupId
  295. {
  296. return self.group;
  297. }
  298. - (NSInteger)memberCount
  299. {
  300. return self.memberNum;
  301. }
  302. @end
  303. @implementation TIMGroupMemberInfo (ShowAble)
  304. // 显示的标题
  305. - (NSString *)showTitle
  306. {
  307. return ![NSString isEmpty:self.nameCard] ? self.nameCard : self.member;
  308. }
  309. // 显示图像的地址
  310. - (NSURL *)showIconUrl
  311. {
  312. // TODO:获取用户头像
  313. return nil;
  314. }
  315. @end