Skip to content

Commit 2e363e9

Browse files
authored
Merge pull request #68 from JoshLipan/dev
Dev
2 parents aea5179 + 4ad0888 commit 2e363e9

File tree

4 files changed

+155
-107
lines changed

4 files changed

+155
-107
lines changed

plugin.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
33
xmlns:android="http://schemas.android.com/apk/res/android"
44
id="jmessage-phonegap-plugin"
5-
version="3.4.8">
5+
version="3.4.9">
66

77
<name>JMessage</name>
88
<description>集成极光 IM 和推送功能</description>
@@ -157,7 +157,7 @@
157157
<meta-data android:name="JPUSH_CHANNEL" android:value="developer-default"/>
158158
</config-file>
159159

160-
<lib-file src="src/android/libs/jmessage-sdk-android-2.6.0.jar" />
160+
<lib-file src="src/android/libs/jmessage-sdk-android-2.6.1.jar" />
161161

162162
<source-file src="src/android/JMessagePlugin.java" target-dir="app/src/main/java/cn/jiguang/cordova/im"/>
163163
<source-file src="src/android/JMessageUtils.java" target-dir="app/src/main/java/cn/jiguang/cordova/im"/>

src/android/JMessagePlugin.java

Lines changed: 153 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -1300,7 +1300,7 @@ void createGroup(JSONArray data, final CallbackContext callback) {
13001300
name = params.getString("name");
13011301
desc = params.getString("desc");
13021302
groupType = params.getString("groupType");
1303-
if(groupType.equals("private")){
1303+
if (groupType.equals("private")) {
13041304
JMessageClient.createGroup(name, desc, new CreateGroupCallback() {
13051305
@Override
13061306
public void gotResult(int status, String desc, long groupId) {
@@ -1311,23 +1311,24 @@ public void gotResult(int status, String desc, long groupId) {
13111311
}
13121312
}
13131313
});
1314-
}else if(groupType.equals("public")){
1314+
} else if (groupType.equals("public")) {
13151315
JMessageClient.createPublicGroup(name, desc, new CreateGroupCallback() {
1316-
1317-
@Override
1318-
public void gotResult(int status, String desc, long groupId) {
1319-
if (status == 0) {
1320-
callback.success(String.valueOf(groupId));
1321-
} else {
1322-
handleResult(status, desc, callback);
1316+
@Override
1317+
public void gotResult(int status, String desc, long groupId) {
1318+
if (status == 0) {
1319+
callback.success(String.valueOf(groupId));
1320+
} else {
1321+
handleResult(status, desc, callback);
1322+
}
1323+
}
1324+
});
1325+
} else {
1326+
handleResult(ERR_CODE_PARAMETER, ERR_MSG_PARAMETER + " : " + groupType, callback);
1327+
}
1328+
} catch (JSONException e) {
1329+
e.printStackTrace();
1330+
handleResult(ERR_CODE_PARAMETER, ERR_MSG_PARAMETER, callback);
13231331
}
1324-
}});}else{handleResult(ERR_CODE_PARAMETER,ERR_MSG_PARAMETER+" : "+groupType,callback);}}catch(
1325-
1326-
JSONException e)
1327-
{
1328-
e.printStackTrace();
1329-
handleResult(ERR_CODE_PARAMETER, ERR_MSG_PARAMETER, callback);
1330-
}
13311332
}
13321333

13331334
void getGroupIds(JSONArray data, final CallbackContext callback) {
@@ -1409,27 +1410,27 @@ public void gotResult(int status, String desc) {
14091410
}
14101411
});
14111412

1412-
}else
1413-
1414-
{
1415-
groupInfo.updateName(newName, new BasicCallback() {
1416-
@Override
1417-
public void gotResult(int status, String desc) {
1418-
if (status == 0) {
1419-
groupInfo.updateDescription(newDesc, new BasicCallback() {
1413+
} else {
1414+
groupInfo.updateName(newName, new BasicCallback() {
14201415
@Override
14211416
public void gotResult(int status, String desc) {
1422-
handleResult(status, desc, callback);
1417+
if (status == 0) {
1418+
groupInfo.updateDescription(newDesc, new BasicCallback() {
1419+
@Override
1420+
public void gotResult(int status, String desc) {
1421+
handleResult(status, desc, callback);
1422+
}
1423+
});
1424+
1425+
} else {
1426+
handleResult(status, desc, callback);
1427+
}
14231428
}
14241429
});
1425-
1426-
} else {
1427-
handleResult(status, desc, callback);
14281430
}
14291431
}
14301432
});
14311433
}
1432-
}});}
14331434

14341435
void updateGroupAvatar(JSONArray data, final CallbackContext callback) {
14351436
long groupId;
@@ -1771,26 +1772,26 @@ public void gotResult(int status, String desc) {
17711772

17721773
JMessageClient.getGroupInfo(groupId, new GetGroupInfoCallback() {
17731774

1774-
@Override
1775-
public void gotResult(int status, String desc, GroupInfo groupInfo) {
1776-
if (status == 0) {
1777-
groupInfo.setNoDisturb(isNoDisturb, new BasicCallback() {
1778-
@Override
1779-
public void gotResult(int status, String desc) {
1780-
handleResult(status, desc, callback);
1781-
}
1782-
});
1783-
1784-
} else {
1785-
handleResult(status, desc, callback);
1786-
}
1787-
}});}}catch(
1788-
1789-
JSONException e){e.printStackTrace();
1775+
@Override
1776+
public void gotResult(int status, String desc, GroupInfo groupInfo) {
1777+
if (status == 0) {
1778+
groupInfo.setNoDisturb(isNoDisturb, new BasicCallback() {
1779+
@Override
1780+
public void gotResult(int status, String desc) {
1781+
handleResult(status, desc, callback);
1782+
}
1783+
});
17901784

1791-
handleResult(ERR_CODE_PARAMETER, ERR_MSG_PARAMETER, callback);
1785+
} else {
1786+
handleResult(status, desc, callback);
1787+
}
1788+
}
1789+
});
1790+
}
1791+
} catch (JSONException e) {
1792+
e.printStackTrace();
1793+
handleResult(ERR_CODE_PARAMETER, ERR_MSG_PARAMETER, callback);
17921794
}
1793-
17941795
}
17951796

17961797
void getNoDisturbList(JSONArray data, final CallbackContext callback) {
@@ -2132,6 +2133,47 @@ public void gotResult(int status, String desc) {
21322133

21332134
}
21342135

2136+
void changeGroupType(JSONArray data, final CallbackContext callback) {
2137+
String type;
2138+
long groupId;
2139+
try {
2140+
JSONObject params = data.getJSONObject(0);
2141+
groupId = Long.parseLong(params.getString("groupId"));
2142+
type = params.getString("type");
2143+
} catch (JSONException e) {
2144+
e.printStackTrace();
2145+
handleResult(ERR_CODE_PARAMETER, ERR_MSG_PARAMETER, callback);
2146+
return;
2147+
}
2148+
JMessageClient.getGroupInfo(groupId, new GetGroupInfoCallback() {
2149+
@Override
2150+
public void gotResult(int status, String desc, GroupInfo groupInfo) {
2151+
if (status == 0) {
2152+
if (type.equals("private")) {
2153+
groupInfo.changeGroupType(GroupInfo.Type.private_group, new BasicCallback() {
2154+
@Override
2155+
public void gotResult(int status, String desc) {
2156+
handleResult(status, desc, callback);
2157+
}
2158+
});
2159+
} else if (type.equals("public")) {
2160+
groupInfo.changeGroupType(GroupInfo.Type.public_group, new BasicCallback() {
2161+
@Override
2162+
public void gotResult(int status, String desc) {
2163+
handleResult(status, desc, callback);
2164+
}
2165+
});
2166+
} else {
2167+
handleResult(ERR_CODE_PARAMETER, ERR_MSG_PARAMETER + ":" + type, callback);
2168+
}
2169+
} else {
2170+
handleResult(status, desc, callback);
2171+
}
2172+
}
2173+
});
2174+
2175+
}
2176+
21352177
void getPublicGroupInfos(JSONArray data, final CallbackContext callback) {
21362178
String appKey;
21372179
int start, count;
@@ -2176,7 +2218,7 @@ public void gotResult(int status, String desc) {
21762218
}
21772219

21782220
void processApplyJoinGroup(JSONArray data, final CallbackContext callback) {
2179-
String reason, appKey;
2221+
String reason, appKey;
21802222
Boolean isAgree, isRespondInviter;
21812223
JSONArray events;
21822224
try {
@@ -2186,31 +2228,37 @@ void processApplyJoinGroup(JSONArray data, final CallbackContext callback) {
21862228
isRespondInviter = params.getBoolean("isRespondInviter");
21872229
events = params.getJSONArray("events");
21882230
appKey = params.has("appKey") ? params.getString("appKey") : "";
2231+
2232+
List<GroupApprovalEvent> groupApprovalEventList = new ArrayList<>();
2233+
21892234
for (int i = 0; i < events.length(); i++) {
21902235
GroupApprovalEvent groupApprovalEvent = groupApprovalEventHashMap.get(events.getString(i));
2191-
if(groupApprovalEvent == null){
2192-
handleResult(ERR_CODE_PARAMETER,ERR_MSG_PARAMETER + ": can't get events." ,callback);
2236+
if (groupApprovalEvent == null) {
2237+
handleResult(ERR_CODE_PARAMETER, ERR_MSG_PARAMETER + ": can't get events.", callback);
21932238
return;
21942239
}
2195-
if(isAgree){
2196-
groupApprovalEvent.acceptGroupApproval(groupApprovalEvent.getFromUsername(), appKey, new BasicCallback() {
2197-
@Override
2198-
public void gotResult(int status, String desc) {
2199-
handleResult(status, desc, callback);
2200-
}
2201-
});
2202-
2203-
}else {
2204-
groupApprovalEvent.refuseGroupApproval(groupApprovalEvent.getFromUsername(), appKey, reason, new BasicCallback() {
2205-
2206-
@Override
2207-
public void gotResult(int status, String desc) {
2208-
handleResult(status, desc, callback);
2209-
}});}
2210-
2211-
}}catch(JSONException e){e.printStackTrace();
2240+
groupApprovalEventList.add(groupApprovalEvent);
2241+
}
22122242

2213-
handleResult(ERR_CODE_PARAMETER, ERR_MSG_PARAMETER, callback);
2243+
if (groupApprovalEventList.size() == 0) {
2244+
handleResult(ERR_CODE_PARAMETER, "Can not find GroupApprovalEvent by events", callback);
2245+
return;
2246+
}
2247+
if (isAgree) {
2248+
GroupApprovalEvent.acceptGroupApprovalInBatch(groupApprovalEventList, isRespondInviter,
2249+
new BasicCallback() {
2250+
@Override
2251+
public void gotResult(int status, String desc) {
2252+
handleResult(status, desc, callback);
2253+
}
2254+
});
2255+
} else {
2256+
// 忽略拒绝处理,直接返回成功信息
2257+
handleResult(0, "", callback);
2258+
}
2259+
} catch (JSONException e) {
2260+
e.printStackTrace();
2261+
handleResult(ERR_CODE_PARAMETER, ERR_MSG_PARAMETER, callback);
22142262
return;
22152263
}
22162264

@@ -2226,7 +2274,7 @@ void dissolveGroup(JSONArray data, final CallbackContext callback) {
22262274
handleResult(ERR_CODE_PARAMETER, ERR_MSG_PARAMETER, callback);
22272275
return;
22282276
}
2229-
JMessageClient.adminDissolveGroup(groupId, new BasicCallback() {
2277+
JMessageClient.adminDissolveGroup(groupId, new BasicCallback() {
22302278
@Override
22312279
public void gotResult(int status, String desc) {
22322280
handleResult(status, desc, callback);
@@ -2304,46 +2352,46 @@ public void onEvent(OfflineMessageEvent event) throws JSONException {
23042352
final int fI = i;
23052353

23062354
switch (msg.getContentType()) {
2307-
case image:
2308-
((ImageContent) msg.getContent()).downloadThumbnailImage(msg, new DownloadCompletionCallback() {
2309-
@Override
2310-
public void onComplete(int status, String desc, File file) {
2311-
if (fI == fLatestMediaMessageIndex) {
2312-
for (Message msg : offlineMsgList) {
2313-
msgJsonArr.put(toJson(msg));
2314-
}
2315-
try {
2316-
json.put("messageArray", msgJsonArr);
2317-
} catch (JSONException e) {
2318-
e.printStackTrace();
2319-
}
2320-
2321-
JSONObject eventJson = toJson("syncOfflineMessage", json);
2322-
eventSuccess(eventJson);
2355+
case image:
2356+
((ImageContent) msg.getContent()).downloadThumbnailImage(msg, new DownloadCompletionCallback() {
2357+
@Override
2358+
public void onComplete(int status, String desc, File file) {
2359+
if (fI == fLatestMediaMessageIndex) {
2360+
for (Message msg : offlineMsgList) {
2361+
msgJsonArr.put(toJson(msg));
2362+
}
2363+
try {
2364+
json.put("messageArray", msgJsonArr);
2365+
} catch (JSONException e) {
2366+
e.printStackTrace();
23232367
}
2324-
}
2325-
});
2326-
break;
2327-
case voice:
2328-
((VoiceContent) msg.getContent()).downloadVoiceFile(msg, new DownloadCompletionCallback() {
2329-
@Override
2330-
public void onComplete(int status, String desc, File file) {
2331-
if (fI == fLatestMediaMessageIndex) {
2332-
for (Message msg : offlineMsgList) {
2333-
msgJsonArr.put(toJson(msg));
2334-
}
2335-
try {
2336-
json.put("messageArray", msgJsonArr);
2337-
} catch (JSONException e) {
2338-
e.printStackTrace();
2339-
}
23402368

2341-
JSONObject eventJson = toJson("syncOfflineMessage", json);
2342-
eventSuccess(eventJson);
2369+
JSONObject eventJson = toJson("syncOfflineMessage", json);
2370+
eventSuccess(eventJson);
2371+
}
2372+
}
2373+
});
2374+
break;
2375+
case voice:
2376+
((VoiceContent) msg.getContent()).downloadVoiceFile(msg, new DownloadCompletionCallback() {
2377+
@Override
2378+
public void onComplete(int status, String desc, File file) {
2379+
if (fI == fLatestMediaMessageIndex) {
2380+
for (Message msg : offlineMsgList) {
2381+
msgJsonArr.put(toJson(msg));
23432382
}
2383+
try {
2384+
json.put("messageArray", msgJsonArr);
2385+
} catch (JSONException e) {
2386+
e.printStackTrace();
2387+
}
2388+
2389+
JSONObject eventJson = toJson("syncOfflineMessage", json);
2390+
eventSuccess(eventJson);
23442391
}
2345-
});
2346-
default:
2392+
}
2393+
});
2394+
default:
23472395
}
23482396
}
23492397
}
-1.52 MB
Binary file not shown.
1.55 MB
Binary file not shown.

0 commit comments

Comments
 (0)