77import com .facebook .react .bridge .WritableArray ;
88import com .facebook .react .bridge .WritableMap ;
99import com .facebook .react .modules .core .DeviceEventManagerModule ;
10+ import com .netease .im .common .ImageLoaderKit ;
1011import com .netease .im .login .LoginService ;
1112import com .netease .im .session .extension .AccountNoticeAttachment ;
1213import com .netease .im .session .extension .BankTransferAttachment ;
@@ -72,6 +73,7 @@ public class ReactCache {
7273 public final static String observeUnreadCountChange = "observeUnreadCountChange" ;//'未读数变化'
7374 public final static String observeBlackList = "observeBlackList" ;//'黑名单'
7475 public final static String observeAttachmentProgress = "observeAttachmentProgress" ;//'上传下载进度'
76+ public final static String observeOnKick = "observeOnKick" ;//'被提出'
7577
7678 final static String TAG = "ReactCache" ;
7779 private static ReactContext reactContext ;
@@ -105,22 +107,26 @@ public static Object createRecentList(List<RecentContact> recents, int unreadNum
105107 map .putString ("unreadCount" , String .valueOf (contact .getUnreadCount ()));
106108 String name = "" ;
107109 SessionTypeEnum sessionType = contact .getSessionType ();
110+ String imagePath = "" ;
108111 if (sessionType == SessionTypeEnum .P2P ) {
109112 map .putString ("teamType" , "-1" );
110113 NimUserInfoCache nimUserInfoCache = NimUserInfoCache .getInstance ();
111- map .putString ("imagePath" , nimUserInfoCache .getAvatar (contactId ));
114+ imagePath = nimUserInfoCache .getAvatar (contactId );
115+
112116 map .putString ("mute" , boolean2String (NIMClient .getService (FriendService .class ).isNeedMessageNotify (contactId )));
113117 name = nimUserInfoCache .getUserDisplayName (contactId );
114118 } else if (sessionType == SessionTypeEnum .Team ) {
115119 Team team = TeamDataCache .getInstance ().getTeamById (contactId );
116120 if (team != null ) {
117121 name = team .getName ();
118122 map .putString ("teamType" , Integer .toString (team .getType ().getValue ()));
119- map . putString ( " imagePath" , team .getIcon () );
123+ imagePath = team .getIcon ();
120124 map .putString ("memberCount" , Integer .toString (team .getMemberCount ()));
121125 map .putString ("mute" , boolean2String (!team .mute ()));
122126 }
123127 }
128+ map .putString ("imagePath" , imagePath );
129+ map .putString ("imageLocal" , ImageLoaderKit .getMemoryCachedAvatar (imagePath ));
124130 map .putString ("name" , name );
125131 map .putString ("sessionType" , Integer .toString (contact .getSessionType ().getValue ()));
126132 map .putString ("msgType" , Integer .toString (contact .getMsgType ().getValue ()));
@@ -191,8 +197,8 @@ public static Object createRecentList(List<RecentContact> recents, int unreadNum
191197 default :
192198 if (attachment instanceof DefaultCustomAttachment ) {
193199 content = ((DefaultCustomAttachment ) attachment ).getDigst ();
194- if (TextUtils .isEmpty (content )){
195- content = "[自定义消息]" ;
200+ if (TextUtils .isEmpty (content )) {
201+ content = "[自定义消息]" ;
196202 }
197203 }
198204 break ;
@@ -257,7 +263,9 @@ public static Object createFriendList(ContactDataList dataList, boolean hasFilte
257263 map .putString ("alias" , contact .getDisplayName ());
258264 map .putString ("type" , Integer .toString (contact .getContactType ()));
259265 map .putString ("name" , NimUserInfoCache .getInstance ().getUserName (contactId ));
260- map .putString ("avatar" , NimUserInfoCache .getInstance ().getAvatar (contactId ));
266+ String avatar = NimUserInfoCache .getInstance ().getAvatar (contactId );
267+ map .putString ("avatar" , avatar );
268+ map .putString ("avatarLocal" , ImageLoaderKit .getMemoryCachedAvatar (avatar ));
261269 array .pushMap (map );
262270// } else {
263271// map.putString("itemType", Integer.toString(item.getItemType()));
@@ -296,7 +304,9 @@ public static Object createFriendSet(ContactDataList datas, boolean hasFilter) {
296304 map .putString ("alias" , contact .getDisplayName ());
297305 map .putString ("type" , Integer .toString (contact .getContactType ()));
298306 map .putString ("name" , NimUserInfoCache .getInstance ().getUserName (contact .getContactId ()));
299- map .putString ("avatar" , NimUserInfoCache .getInstance ().getAvatar (contact .getContactId ()));
307+ String avatar = NimUserInfoCache .getInstance ().getAvatar (contact .getContactId ());
308+ map .putString ("avatar" , avatar );
309+ map .putString ("avatarLocal" , ImageLoaderKit .getMemoryCachedAvatar (avatar ));
300310 WritableArray array = listHashMap .get (belongs );
301311 if (array == null ) {
302312 array = Arguments .createArray ();
@@ -345,7 +355,9 @@ public static Object createTeamList(ContactDataList datas) {
345355 }
346356 map .putString ("name" , teamContact .getDisplayName ());
347357 map .putString ("type" , Integer .toString (teamContact .getContactType ()));
348- map .putString ("avatar" , NimUserInfoCache .getInstance ().getAvatar (teamContact .getContactId ()));
358+ String avatar = NimUserInfoCache .getInstance ().getAvatar (teamContact .getContactId ());
359+ map .putString ("avatar" , avatar );
360+ map .putString ("avatarLocal" , ImageLoaderKit .getMemoryCachedAvatar (avatar ));
349361 writableArray .pushMap (map );
350362 }
351363// } else {
@@ -384,6 +396,7 @@ public static Object createUserInfo(NimUserInfo userInfo) {
384396 writableMap .putString ("name" , userInfo .getName ());
385397 writableMap .putString ("alias" , NimUserInfoCache .getInstance ().getUserDisplayName (userInfo .getAccount ()));
386398 writableMap .putString ("avatar" , userInfo .getAvatar ());
399+ writableMap .putString ("avatarLocal" , ImageLoaderKit .getMemoryCachedAvatar (userInfo .getAvatar ()));
387400 writableMap .putString ("signature" , userInfo .getSignature ());
388401 writableMap .putString ("gender" , Integer .toString (userInfo .getGenderEnum ().getValue ()));
389402 writableMap .putString ("email" , userInfo .getEmail ());
@@ -405,7 +418,9 @@ public static Object createSystemMsg(List<SystemMessage> sysItems) {
405418 map .putString ("type" , Integer .toString (message .getType ().getValue ()));
406419 map .putString ("targetId" , message .getTargetId ());
407420 map .putString ("fromAccount" , message .getFromAccount ());
408- map .putString ("avatar" , nimUserInfoCache .getAvatar (message .getFromAccount ()));
421+ String avatar = nimUserInfoCache .getAvatar (message .getFromAccount ());
422+ map .putString ("avatar" , avatar );
423+ map .putString ("avatarLocal" , ImageLoaderKit .getMemoryCachedAvatar (avatar ));
409424 map .putString ("name" , nimUserInfoCache .getUserDisplayNameEx (message .getFromAccount ()));//alias
410425 map .putString ("time" , Long .toString (message .getTime () / 1000 ));
411426 map .putString ("isVerify" , String .valueOf (verify ));
@@ -504,6 +519,7 @@ public static Object createBlackList(List<UserInfoProvider.UserInfo> data) {
504519 writableMap .putString ("contactId" , userInfo .getAccount ());
505520 writableMap .putString ("name" , userInfo .getName ());
506521 writableMap .putString ("avatar" , userInfo .getAvatar ());
522+ writableMap .putString ("avatarLocal" , ImageLoaderKit .getMemoryCachedAvatar (userInfo .getAvatar ()));
507523 array .pushMap (writableMap );
508524 }
509525 }
@@ -555,6 +571,7 @@ public static Object createTeamInfo(Team team) {
555571 writableMap .putString ("teamId" , team .getId ());
556572 writableMap .putString ("name" , team .getName ());
557573 writableMap .putString ("avatar" , team .getIcon ());
574+ writableMap .putString ("avatarLocal" , ImageLoaderKit .getMemoryCachedAvatar (team .getIcon ()));
558575 writableMap .putString ("type" , Integer .toString (team .getType ().getValue ()));
559576 writableMap .putString ("introduce" , team .getIntroduce ());
560577 writableMap .putString ("createTime" , TimeUtil .getTimeShowString (team .getCreateTime (), true ));
@@ -582,8 +599,9 @@ public static WritableMap createTeamMemberInfo(TeamMember teamMember) {
582599 writableMap .putString ("alias" , NimUserInfoCache .getInstance ().getUserDisplayName (teamMember .getAccount ()));
583600 writableMap .putString ("name" , TeamDataCache .getInstance ().getTeamMemberDisplayName (teamMember .getTid (), teamMember .getAccount ()));
584601 writableMap .putString ("joinTime" , TimeUtil .getTimeShowString (teamMember .getJoinTime (), true ));
585- writableMap .putString ("avatar" , NimUserInfoCache .getInstance ().getAvatar (teamMember .getAccount ()));
586-
602+ String avatar = NimUserInfoCache .getInstance ().getAvatar (teamMember .getAccount ());
603+ writableMap .putString ("avatar" , avatar );
604+ writableMap .putString ("avatarLocal" , ImageLoaderKit .getMemoryCachedAvatar (avatar ));
587605 writableMap .putString ("isInTeam" , boolean2String (teamMember .isInTeam ()));
588606 writableMap .putString ("isMute" , boolean2String (teamMember .isMute ()));
589607 writableMap .putString ("teamId" , teamMember .getTid ());
@@ -657,9 +675,13 @@ public static WritableMap createMessage(IMMessage item) {
657675 itemMap .putString ("isRemoteRead" , boolean2String (receiveReceiptCheck (item )));
658676
659677 WritableMap user = Arguments .createMap ();
660- user .putString ("_id" , item .getFromAccount ());
661- user .putString ("name" , NimUserInfoCache .getInstance ().getUserDisplayName (item .getFromAccount ()));
662- user .putString ("avatar" , NimUserInfoCache .getInstance ().getAvatar (item .getFromAccount ()));
678+ String fromAccount = item .getFromAccount ();
679+ String fromNick = item .getFromNick ();
680+ user .putString ("_id" , fromAccount );
681+ user .putString ("name" , !TextUtils .isEmpty (fromNick ) ? fromNick : NimUserInfoCache .getInstance ().getUserDisplayName (fromAccount ));
682+ String avatar = NimUserInfoCache .getInstance ().getAvatar (fromAccount );
683+ user .putString ("avatar" , avatar );
684+ user .putString ("avatarLocal" , ImageLoaderKit .getMemoryCachedAvatar (avatar ));
663685 itemMap .putMap ("user" , user );
664686
665687 MsgAttachment attachment = item .getAttachment ();
0 commit comments