22
33
44
5+ import android .text .TextUtils ;
6+
57import com .facebook .react .bridge .Arguments ;
68import com .facebook .react .bridge .ReadableMap ;
79import com .facebook .react .bridge .ReadableMapKeySetIterator ;
810import com .facebook .react .bridge .WritableArray ;
911import com .facebook .react .bridge .WritableMap ;
12+ import com .google .gson .jpush .JsonElement ;
13+ import com .google .gson .jpush .JsonObject ;
14+ import com .google .gson .jpush .JsonParser ;
1015
1116import org .json .JSONException ;
1217import org .json .JSONObject ;
3136import cn .jpush .im .android .api .model .GroupInfo ;
3237import cn .jpush .im .android .api .model .Message ;
3338import cn .jpush .im .android .api .model .UserInfo ;
39+ import io .jchat .android .Constant ;
3440
3541public class ResultUtils {
3642
43+
3744 public static Map <String , String > fromMap (ReadableMap extras ) {
3845 Map <String , String > map = new HashMap <String , String >();
3946
@@ -62,121 +69,123 @@ public static WritableMap toJSObject(final UserInfo userInfo) {
6269 return Arguments .createMap ();
6370 }
6471 final WritableMap result = Arguments .createMap ();
65- result .putString ("type" , "user" );
72+ result .putString (Constant . TYPE , Constant . TYPE_USER );
6673 if (null != userInfo .getGender ()) {
67- result .putString ("gender" , userInfo .getGender ().toString ());
74+ result .putString (Constant . GENDER , userInfo .getGender ().toString ());
6875 } else {
69- result .putString ("gender" , "unknown" );
76+ result .putString (Constant . GENDER , "unknown" );
7077 }
71- result .putString ("username" , userInfo .getUserName ());
72- result .putString ("appKey" , userInfo .getAppKey ());
73- result .putString ("nickname" , userInfo .getNickname ());
78+ result .putString (Constant . USERNAME , userInfo .getUserName ());
79+ result .putString (Constant . APP_KEY , userInfo .getAppKey ());
80+ result .putString (Constant . NICKNAME , userInfo .getNickname ());
7481
7582 if (userInfo .getAvatarFile () != null ) {
76- result .putString ("avatarThumbPath" , userInfo .getAvatarFile ().getAbsolutePath ());
83+ result .putString (Constant . AVATAR_THUMB_PATH , userInfo .getAvatarFile ().getAbsolutePath ());
7784 } else {
7885 result .putString ("avatarThumbPath" , "" );
7986 }
80-
81- result .putDouble ("birthday" , userInfo .getBirthday ());
82- result .putString ("region" , userInfo .getRegion ());
83- result .putString ("signature" , userInfo .getSignature ());
84- result .putString ("address" , userInfo .getAddress ());
85- result .putString ("noteName" , userInfo .getNotename ());
86- result .putString ("noteText" , userInfo .getNoteText ());
87- result .putBoolean ("isNoDisturb" , userInfo .getNoDisturb () == 1 );
88- result .putBoolean ("isInBlackList" , userInfo .getNoDisturb () == 1 );
89- result .putBoolean ("isFriend" , userInfo .isFriend ());
87+ if (userInfo .getExtras () != null && userInfo .getExtras ().size () > 0 ) {
88+ result .putMap (Constant .EXTRAS , toJSObject (userInfo .getExtras ()));
89+ }
90+ result .putDouble (Constant .BIRTHDAY , userInfo .getBirthday ());
91+ result .putString (Constant .REGION , userInfo .getRegion ());
92+ result .putString (Constant .SIGNATURE , userInfo .getSignature ());
93+ result .putString (Constant .ADDRESS , userInfo .getAddress ());
94+ result .putString (Constant .NOTE_NAME , userInfo .getNotename ());
95+ result .putString (Constant .NOTE_TEXT , userInfo .getNoteText ());
96+ result .putBoolean (Constant .IS_NO_DISTURB , userInfo .getNoDisturb () == 1 );
97+ result .putBoolean (Constant .IS_IN_BLACKLIST , userInfo .getBlacklist () == 1 );
98+ result .putBoolean (Constant .IS_FRIEND , userInfo .isFriend ());
9099 return result ;
91100 }
92101
93102 public static WritableMap toJSObject (GroupInfo groupInfo ) {
94103 WritableMap result = Arguments .createMap ();
95104
96- result .putString ("type" , "group" );
97- result .putDouble ("id" , groupInfo .getGroupID ());
98- result .putString ("name" , groupInfo .getGroupName ());
99- result .putString ("desc" , groupInfo .getGroupDescription ());
100- result .putInt ("level" , groupInfo .getGroupLevel ());
101- result .putString ("owner" , groupInfo .getGroupOwner ());
102- result .putString ("ownerAppKey" , groupInfo .getOwnerAppkey ());
103- result .putInt ("maxMemberCount" , groupInfo .getMaxMemberCount ());
104- result .putBoolean ("isNoDisturb" , groupInfo .getNoDisturb () == 1 );
105- result .putBoolean ("isBlocked" , groupInfo .isGroupBlocked () == 1 );
105+ result .putString (Constant . TYPE , Constant . TYPE_GROUP );
106+ result .putDouble (Constant . ID , groupInfo .getGroupID ());
107+ result .putString (Constant . NAME , groupInfo .getGroupName ());
108+ result .putString (Constant . DESC , groupInfo .getGroupDescription ());
109+ result .putInt (Constant . LEVEL , groupInfo .getGroupLevel ());
110+ result .putString (Constant . OWNER , groupInfo .getGroupOwner ());
111+ result .putString (Constant . OWNER_APP_KEY , groupInfo .getOwnerAppkey ());
112+ result .putInt (Constant . MAX_MEMBER_COUNT , groupInfo .getMaxMemberCount ());
113+ result .putBoolean (Constant . IS_NO_DISTURB , groupInfo .getNoDisturb () == 1 );
114+ result .putBoolean (Constant . IS_BLOCKED , groupInfo .isGroupBlocked () == 1 );
106115 return result ;
107116 }
108117
109118 public static WritableMap toJSObject (Message msg ) {
110119 WritableMap result = Arguments .createMap ();
111120 try {
112- result .putString ("id" , String .valueOf (msg .getId ()));
113- result .putMap ("from" , toJSObject (msg .getFromUser ()));
121+ result .putString (Constant . ID , String .valueOf (msg .getId ()));
122+ result .putMap (Constant . FROM , toJSObject (msg .getFromUser ()));
114123
115124 if (msg .getDirect () == MessageDirect .send ) {
116125 if (msg .getTargetType () == ConversationType .single ) {
117- result .putMap ("target" , toJSObject ((UserInfo ) msg .getTargetInfo ()));
126+ result .putMap (Constant . TARGET , toJSObject ((UserInfo ) msg .getTargetInfo ()));
118127 } else if (msg .getTargetType () == ConversationType .group ) {
119- result .putMap ("target" , toJSObject ((GroupInfo ) msg .getTargetInfo ()));
128+ result .putMap (Constant . TARGET , toJSObject ((GroupInfo ) msg .getTargetInfo ()));
120129 }
121130
122131 } else {
123132 UserInfo myInfo = JMessageClient .getMyInfo ();
124- result .putMap ("target" , toJSObject (myInfo ));
133+ result .putMap (Constant . TARGET , toJSObject (myInfo ));
125134 }
126135
127136 MessageContent content = msg .getContent ();
128137 if (content .getStringExtras () != null ) {
129- result .putMap ("extras" , toJSObject (content .getStringExtras ()));
138+ result .putMap (Constant . EXTRAS , toJSObject (content .getStringExtras ()));
130139 }
131140
132- result .putDouble ("createTime" , msg .getCreateTime ());
141+ result .putDouble (Constant . CREATE_TIME , msg .getCreateTime ());
133142
134143 switch (msg .getContentType ()) {
135144 case text :
136- result .putString ("type" , "text" );
137- result .putString ("text" , ((TextContent ) content ).getText ());
145+ result .putString (Constant . TYPE , Constant . TEXT );
146+ result .putString (Constant . TEXT , ((TextContent ) content ).getText ());
138147 break ;
139148 case image :
140- result .putString ("type" , "image" );
141- result .putString ("thumbPath" , ((ImageContent ) content ).getLocalThumbnailPath ());
149+ result .putString (Constant . TYPE , Constant . IMAGE );
150+ result .putString (Constant . THUMB_PATH , ((ImageContent ) content ).getLocalThumbnailPath ());
142151 break ;
143152 case voice :
144- result .putString ("type" , "voice" );
145- result .putString ("path" , ((VoiceContent ) content ).getLocalPath ());
146- result .putInt ("duration" , ((VoiceContent ) content ).getDuration ());
153+ result .putString (Constant . TYPE , Constant . VOICE );
154+ result .putString (Constant . PATH , ((VoiceContent ) content ).getLocalPath ());
155+ result .putInt (Constant . DURATION , ((VoiceContent ) content ).getDuration ());
147156 break ;
148157 case file :
149- result .putString ("type" , "file" );
150- result .putString ("fileName" , ((FileContent ) content ).getFileName ());
158+ result .putString (Constant . TYPE , Constant . FILE );
159+ result .putString (Constant . FILE_NAME , ((FileContent ) content ).getFileName ());
151160 break ;
152161 case custom :
153- result .putString ("type" , "custom" );
162+ result .putString (Constant . TYPE , Constant . CUSTOM );
154163 Map <String , String > customObject = ((CustomContent ) content ).getAllStringValues ();
155- result .putMap ("customObject" , toJSObject (customObject ));
164+ result .putMap (Constant . CUSTOM_OBJECT , toJSObject (customObject ));
156165 break ;
157166 case location :
158- result .putString ("type" , "location" );
159- result .putDouble ("latitude" , ((LocationContent ) content ).getLatitude ().doubleValue ());
160- result .putDouble ("longitude" , ((LocationContent ) content ).getLongitude ().doubleValue ());
161- result .putString ("address" , ((LocationContent ) content ).getAddress ());
162- result .putDouble ("scale" , ((LocationContent ) content ).getScale ().doubleValue ());
167+ result .putString (Constant . TYPE , Constant . LOCATION );
168+ result .putDouble (Constant . LATITUDE , ((LocationContent ) content ).getLatitude ().doubleValue ());
169+ result .putDouble (Constant . LONGITUDE , ((LocationContent ) content ).getLongitude ().doubleValue ());
170+ result .putString (Constant . ADDRESS , ((LocationContent ) content ).getAddress ());
171+ result .putDouble (Constant . SCALE , ((LocationContent ) content ).getScale ().doubleValue ());
163172 break ;
164173 case eventNotification :
165- result .putString ("type" , "event" );
174+ result .putString (Constant . TYPE , "event" );
166175 List usernameList = ((EventNotificationContent ) content ).getUserNames ();
167- result .putArray ("usernames" , toJSArray (usernameList ));
176+ result .putArray (Constant . USERNAMES , toJSArray (usernameList ));
168177 switch (((EventNotificationContent ) content ).getEventNotificationType ()) {
169178 case group_member_added :
170179 //群成员加群事件
171- result .putString ("eventType" , "group_member_added" );
180+ result .putString (Constant . EVENT_TYPE , "group_member_added" );
172181 break ;
173182 case group_member_removed :
174183 //群成员被踢事件
175- result .putString ("eventType" , "group_member_removed" );
184+ result .putString (Constant . EVENT_TYPE , "group_member_removed" );
176185 break ;
177186 case group_member_exit :
178187 //群成员退群事件
179- result .putString ("eventType" , "group_member_exit" );
188+ result .putString (Constant . EVENT_TYPE , "group_member_exit" );
180189 break ;
181190 }
182191 default :
@@ -192,21 +201,32 @@ public static WritableMap toJSObject(Conversation conversation) {
192201 WritableMap map = Arguments .createMap ();
193202
194203 try {
195- map .putString ("title" , conversation .getTitle ());
196- map .putString ("conversationType" , conversation .getType ().name ());
197- map .putInt ("unreadCount" , conversation .getUnReadMsgCnt ());
204+ map .putString (Constant . TITLE , conversation .getTitle ());
205+ map .putString (Constant . CONVERSATION_TYPE , conversation .getType ().name ());
206+ map .putInt (Constant . UNREAD_COUNT , conversation .getUnReadMsgCnt ());
198207
199208 if (conversation .getLatestMessage () != null ) {
200- map .putMap ("latestMessage" , toJSObject (conversation .getLatestMessage ()));
209+ map .putMap (Constant .LATEST_MESSAGE , toJSObject (conversation .getLatestMessage ()));
210+ }
211+
212+ if (!TextUtils .isEmpty (conversation .getExtra ())) {
213+ WritableMap extrasMap = Arguments .createMap ();
214+ String extras = conversation .getExtra ();
215+ JsonParser parser = new JsonParser ();
216+ JsonObject jsonObject = parser .parse (extras ).getAsJsonObject ();
217+ for (Map .Entry <String , JsonElement > entry : jsonObject .entrySet ()) {
218+ extrasMap .putString (entry .getKey (), entry .getValue ().toString ());
219+ }
220+ map .putMap (Constant .EXTRAS , extrasMap );
201221 }
202222
203223 if (conversation .getType () == ConversationType .single ) {
204224 UserInfo targetInfo = (UserInfo ) conversation .getTargetInfo ();
205- map .putMap ("target" , toJSObject (targetInfo ));
225+ map .putMap (Constant . TARGET , toJSObject (targetInfo ));
206226
207227 } else if (conversation .getType () == ConversationType .group ) {
208228 GroupInfo targetInfo = (GroupInfo ) conversation .getTargetInfo ();
209- map .putMap ("target" , toJSObject (targetInfo ));
229+ map .putMap (Constant . TARGET , toJSObject (targetInfo ));
210230 }
211231
212232 } catch (Exception e ) {
0 commit comments