Skip to content

Commit 7e85939

Browse files
committed
[sdk] SDK 4.1.0更新到4.4.0
1 parent 11db668 commit 7e85939

15 files changed

+106
-44
lines changed

android/libs/nim-basesdk-4.1.0.jar

-718 KB
Binary file not shown.

android/libs/nim-basesdk-4.4.0.jar

808 KB
Binary file not shown.

android/src/main/AndroidManifest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@
3434
<uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>
3535

3636
<application>
37+
38+
<!--适配 Android O 版本后台运行机制-->
39+
<service android:name="com.netease.nimlib.service.ResponseService" />
3740
<!-- 声明网易云通信后台服务,如需保持后台推送,使用独立进程效果会更好。 -->
3841
<service
3942
android:name="com.netease.nimlib.service.NimService"

android/src/main/java/com/netease/im/IMApplication.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import com.netease.nimlib.sdk.msg.model.CustomNotification;
4141
import com.netease.nimlib.sdk.msg.model.IMMessage;
4242
import com.netease.nimlib.sdk.uinfo.UserInfoProvider;
43+
import com.netease.nimlib.sdk.util.NIMUtil;
4344

4445
/**
4546
* Created by dowin on 2017/4/28.
@@ -82,6 +83,7 @@ public MiPushConfig(String certificate, String appID, String appKey) {
8283
// 图片加载、缓存与管理组件
8384
private static ImageLoaderKit imageLoaderKit;
8485
private static StatusBarNotificationConfig statusBarNotificationConfig;
86+
private static boolean DEBUG = false;
8587

8688
public static void init(Context context, Class mainActivityClass, @DrawableRes int notify_msg_drawable_id, MiPushConfig miPushConfig) {
8789
IMApplication.context = context.getApplicationContext();
@@ -96,7 +98,7 @@ public static void init(Context context, Class mainActivityClass, @DrawableRes i
9698
NIMClient.init(context, getLoginInfo(), getOptions(context));
9799
// crash handler
98100
// AppCrashHandler.getInstance(context);
99-
if (inMainProcess(IMApplication.context)) {
101+
if (NIMUtil.isMainProcess(IMApplication.context)) {
100102

101103

102104
// init pinyin
@@ -114,6 +116,7 @@ public static void init(Context context, Class mainActivityClass, @DrawableRes i
114116
}
115117

116118
public static void setDebugAble(boolean debugAble) {
119+
DEBUG = debugAble;
117120
LogUtil.setDebugAble(debugAble);
118121
}
119122

@@ -179,6 +182,12 @@ private static SDKOptions getOptions(Context context) {
179182

180183
// 在线多端同步未读数
181184
options.sessionReadAck = true;
185+
//自动检查 SDK 配置是否完全
186+
options.checkManifestConfig = DEBUG;
187+
//reducedIM 支持弱 IM 场景
188+
//asyncInitSDK 支持异步 SDK 初始化
189+
//teamNotificationMessageMarkUnread 登录选项添加群通知消息是否计入未读数开关
190+
//sdkStorageRootPath 配置的外置存储缓存根目录
182191

183192
return options;
184193
}

android/src/main/java/com/netease/im/RNNeteaseImModule.java

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,13 +73,15 @@
7373
import com.netease.nimlib.sdk.team.constant.TeamBeInviteModeEnum;
7474
import com.netease.nimlib.sdk.team.constant.TeamFieldEnum;
7575
import com.netease.nimlib.sdk.team.constant.TeamInviteModeEnum;
76+
import com.netease.nimlib.sdk.team.constant.TeamMessageNotifyTypeEnum;
7677
import com.netease.nimlib.sdk.team.constant.TeamTypeEnum;
7778
import com.netease.nimlib.sdk.team.constant.TeamUpdateModeEnum;
7879
import com.netease.nimlib.sdk.team.constant.VerifyTypeEnum;
80+
import com.netease.nimlib.sdk.team.model.CreateTeamResult;
7981
import com.netease.nimlib.sdk.team.model.Team;
8082
import com.netease.nimlib.sdk.team.model.TeamMember;
81-
import com.netease.nimlib.sdk.uinfo.UserInfoProvider;
8283
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
84+
import com.netease.nimlib.sdk.uinfo.model.UserInfo;
8385

8486
import java.io.File;
8587
import java.io.Serializable;
@@ -359,7 +361,7 @@ public void stopBlackList(final Promise promise) {
359361
public void getBlackList(final Promise promise) {
360362
final List<String> accounts = NIMClient.getService(FriendService.class).getBlackList();
361363
List<String> unknownAccounts = new ArrayList<>();
362-
final List<UserInfoProvider.UserInfo> data = new ArrayList<>();
364+
final List<UserInfo> data = new ArrayList<>();
363365
for (String contactId : accounts) {
364366
if (!NimUserInfoCache.getInstance().hasUser(contactId)) {
365367
unknownAccounts.add(contactId);
@@ -494,7 +496,15 @@ public void onResult(int code, Void aVoid, Throwable throwable) {
494496
@ReactMethod
495497
public void setTeamNotify(String teamId, String mute, final Promise promise) {
496498

497-
NIMClient.getService(TeamService.class).muteTeam(teamId, !string2Boolean(mute))
499+
TeamMessageNotifyTypeEnum typeEnum = TeamMessageNotifyTypeEnum.All;
500+
if ("0".equals(mute)) {
501+
typeEnum = TeamMessageNotifyTypeEnum.Mute;
502+
} else if ("1".equals(mute)) {
503+
typeEnum = TeamMessageNotifyTypeEnum.All;
504+
} else if ("2".equals(mute)) {
505+
typeEnum = TeamMessageNotifyTypeEnum.Manager;
506+
}
507+
NIMClient.getService(TeamService.class).muteTeam(teamId, typeEnum)//!string2Boolean(mute)
498508
.setCallback(new RequestCallbackWrapper<Void>() {
499509
@Override
500510
public void onResult(int code, Void aVoid, Throwable throwable) {
@@ -714,11 +724,12 @@ public void createTeam(ReadableMap fields, String type, ReadableArray accounts,
714724
fieldsMap.put(TeamFieldEnum.Name, teamName);
715725
final String finalTeamName = teamName;
716726
NIMClient.getService(TeamService.class).createTeam(fieldsMap, teamTypeEnum, "", array2ListString(accounts))
717-
.setCallback(new RequestCallbackWrapper<Team>() {
727+
.setCallback(new RequestCallbackWrapper<CreateTeamResult>() {
718728
@Override
719-
public void onResult(int code, Team team, Throwable throwable) {
729+
public void onResult(int code, CreateTeamResult createTeamResult, Throwable throwable) {
720730
if (code == ResponseCode.RES_SUCCESS) {
721731

732+
Team team = createTeamResult.getTeam();
722733
MessageHelper.getInstance().onCreateTeamMessage(team);
723734
WritableMap id = Arguments.createMap();
724735
id.putString("teamId", team.getId());
@@ -925,9 +936,9 @@ public void addMembers(String teamId, ReadableArray accounts, final Promise prom
925936

926937

927938
NIMClient.getService(TeamService.class).addMembers(teamId, array2ListString(accounts))
928-
.setCallback(new RequestCallbackWrapper<Void>() {
939+
.setCallback(new RequestCallbackWrapper<List<String>>() {
929940
@Override
930-
public void onResult(int code, Void aVoid, Throwable throwable) {
941+
public void onResult(int code, List<String> strings, Throwable throwable) {
931942
if (code == ResponseCode.RES_SUCCESS) {
932943
promise.resolve("" + code);
933944
} else if (code == ResponseCode.RES_TEAM_INVITE_SUCCESS) {

android/src/main/java/com/netease/im/ReactCache.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,11 @@
5050
import com.netease.nimlib.sdk.msg.model.IMMessage;
5151
import com.netease.nimlib.sdk.msg.model.RecentContact;
5252
import com.netease.nimlib.sdk.msg.model.SystemMessage;
53+
import com.netease.nimlib.sdk.team.constant.TeamMessageNotifyTypeEnum;
5354
import com.netease.nimlib.sdk.team.model.Team;
5455
import com.netease.nimlib.sdk.team.model.TeamMember;
55-
import com.netease.nimlib.sdk.uinfo.UserInfoProvider;
5656
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
57+
import com.netease.nimlib.sdk.uinfo.model.UserInfo;
5758

5859
import java.util.ArrayList;
5960
import java.util.HashMap;
@@ -138,7 +139,7 @@ public static Object createRecentList(List<RecentContact> recents, int unreadNum
138139
map.putString("teamType", Integer.toString(team.getType().getValue()));
139140
imagePath = team.getIcon();
140141
map.putString("memberCount", Integer.toString(team.getMemberCount()));
141-
map.putString("mute", boolean2String(!team.mute()));
142+
map.putString("mute", getMessageNotifyType(team.getMessageNotifyType()));
142143
}
143144
}
144145
map.putString("imagePath", imagePath);
@@ -591,10 +592,10 @@ private static String getVerifyNotificationDealResult(SystemMessage message) {
591592
}
592593
}
593594

594-
public static Object createBlackList(List<UserInfoProvider.UserInfo> data) {
595+
public static Object createBlackList(List<UserInfo> data) {
595596
WritableArray array = Arguments.createArray();
596597
if (data != null) {
597-
for (UserInfoProvider.UserInfo userInfo : data) {
598+
for (UserInfo userInfo : data) {
598599
if (userInfo != null) {
599600
WritableMap writableMap = Arguments.createMap();
600601
writableMap.putString("contactId", userInfo.getAccount());
@@ -635,6 +636,18 @@ public static Object createMessageList(List<IMMessage> messageList) {
635636
return writableArray;
636637
}
637638

639+
static String getMessageNotifyType(TeamMessageNotifyTypeEnum notifyTypeEnum){
640+
String notify = "1";
641+
if(notifyTypeEnum==TeamMessageNotifyTypeEnum.All){
642+
notify = "1";
643+
}else if(notifyTypeEnum==TeamMessageNotifyTypeEnum.Manager){
644+
notify = "0";
645+
}else if(notifyTypeEnum==TeamMessageNotifyTypeEnum.Mute){
646+
notify = "0";
647+
}
648+
return notify;
649+
}
650+
638651
public static Object createTeamInfo(Team team) {
639652
WritableMap writableMap = Arguments.createMap();
640653
if (team != null) {
@@ -646,7 +659,7 @@ public static Object createTeamInfo(Team team) {
646659
writableMap.putString("introduce", team.getIntroduce());
647660
writableMap.putString("createTime", TimeUtil.getTimeShowString(team.getCreateTime(), true));
648661
writableMap.putString("creator", team.getCreator());
649-
writableMap.putString("mute", boolean2String(!team.mute()));
662+
writableMap.putString("mute", getMessageNotifyType(team.getMessageNotifyType()));
650663
writableMap.putString("memberCount", Integer.toString(team.getMemberCount()));
651664
writableMap.putString("memberLimit", Integer.toString(team.getMemberLimit()));
652665
}

android/src/main/java/com/netease/im/common/ImageLoaderKit.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import com.netease.im.uikit.common.util.log.LogUtil;
1212
import com.netease.nimlib.sdk.nos.model.NosThumbParam;
1313
import com.netease.nimlib.sdk.nos.util.NosThumbImageUtil;
14-
import com.netease.nimlib.sdk.uinfo.UserInfoProvider;
14+
import com.netease.nimlib.sdk.uinfo.model.UserInfo;
1515
import com.nostra13.universalimageloader.cache.disc.impl.ext.LruDiskCache;
1616
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
1717
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
@@ -149,7 +149,7 @@ public static void buildAvatarCache(List<String> accounts) {
149149
return;
150150
}
151151

152-
UserInfoProvider.UserInfo userInfo;
152+
UserInfo userInfo;
153153
for (String account : accounts) {
154154
userInfo = IMApplication.getUserInfoProvider().getUserInfo(account);
155155
if (userInfo != null) {

android/src/main/java/com/netease/im/contact/BlackListObserver.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import com.netease.nimlib.sdk.RequestCallbackWrapper;
77
import com.netease.nimlib.sdk.ResponseCode;
88
import com.netease.nimlib.sdk.friend.FriendService;
9-
import com.netease.nimlib.sdk.uinfo.UserInfoProvider;
109
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
10+
import com.netease.nimlib.sdk.uinfo.model.UserInfo;
1111

1212
import java.util.ArrayList;
1313
import java.util.List;
@@ -19,7 +19,7 @@
1919

2020
public class BlackListObserver {
2121

22-
List<UserInfoProvider.UserInfo> items = new ArrayList<>();
22+
List<UserInfo> items = new ArrayList<>();
2323

2424
public void startBlackList() {
2525
items.clear();
@@ -89,7 +89,7 @@ private void removeBlackList(String contactId) {
8989

9090
int index = -1;
9191
for (int i = 0; i < items.size(); i++) {
92-
UserInfoProvider.UserInfo item = items.get(i);
92+
UserInfo item = items.get(i);
9393
if (contactId.equals(item.getAccount())) {
9494
index = i;
9595
break;

android/src/main/java/com/netease/im/contact/DefalutUserInfoProvider.java

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
1414
import com.netease.nimlib.sdk.team.model.Team;
1515
import com.netease.nimlib.sdk.uinfo.UserInfoProvider;
16+
import com.netease.nimlib.sdk.uinfo.model.UserInfo;
17+
18+
import static com.netease.im.MessageConstant.Card.sessionId;
1619

1720

1821
/**
@@ -39,12 +42,10 @@ public UserInfo getUserInfo(String account) {
3942
return user;
4043
}
4144

42-
@Override
4345
public int getDefaultIconResId() {
4446
return R.drawable.nim_avatar_default;
4547
}
4648

47-
@Override
4849
public Bitmap getAvatarForMessageNotifier(String account) {
4950
/**
5051
* 注意:这里最好从缓存里拿,如果读取本地头像可能导致UI进程阻塞,导致通知栏提醒延时弹出。
@@ -73,6 +74,31 @@ public String getDisplayNameForMessageNotifier(String account, String sessionId,
7374
}
7475

7576
@Override
77+
public Bitmap getAvatarForMessageNotifier(SessionTypeEnum sessionType, String account) {
78+
/*
79+
* 注意:这里最好从缓存里拿,如果加载时间过长会导致通知栏延迟弹出!该函数在后台线程执行!
80+
*/
81+
Bitmap bm = null;
82+
int defResId = R.drawable.nim_avatar_default;
83+
84+
if (SessionTypeEnum.P2P == sessionType) {
85+
UserInfo user = getUserInfo(sessionId);
86+
bm = (user != null) ? ImageLoaderKit.getNotificationBitmapFromCache(user.getAvatar()) : null;
87+
} else if (SessionTypeEnum.Team == sessionType) {
88+
Team team = TeamDataCache.getInstance().getTeamById(account);
89+
bm = (team != null) ? ImageLoaderKit.getNotificationBitmapFromCache(team.getIcon()) : null;
90+
defResId = R.drawable.nim_avatar_group;
91+
}
92+
93+
if (bm == null) {
94+
Drawable drawable = context.getResources().getDrawable(defResId);
95+
if (drawable instanceof BitmapDrawable) {
96+
bm = ((BitmapDrawable) drawable).getBitmap();
97+
}
98+
}
99+
return bm;
100+
}
101+
76102
public Bitmap getTeamIcon(String teamId) {
77103
/**
78104
* 注意:这里最好从缓存里拿,如果读取本地头像可能导致UI进程阻塞,导致通知栏提醒延时弹出。

android/src/main/java/com/netease/im/contact/DefaultContactProvider.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import com.netease.im.uikit.cache.FriendDataCache;
44
import com.netease.im.uikit.cache.NimUserInfoCache;
55
import com.netease.im.uikit.contact.core.ContactProvider;
6-
import com.netease.nimlib.sdk.uinfo.UserInfoProvider;
76
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
7+
import com.netease.nimlib.sdk.uinfo.model.UserInfo;
88

99
import java.util.ArrayList;
1010
import java.util.List;
@@ -17,9 +17,9 @@
1717
public class DefaultContactProvider implements ContactProvider {
1818

1919
@Override
20-
public List<UserInfoProvider.UserInfo> getUserInfoOfMyFriends() {
20+
public List<UserInfo> getUserInfoOfMyFriends() {
2121
List<NimUserInfo> nimUsers = NimUserInfoCache.getInstance().getAllUsersOfMyFriend();
22-
List<UserInfoProvider.UserInfo> users = new ArrayList<>(nimUsers.size());
22+
List<UserInfo> users = new ArrayList<>(nimUsers.size());
2323
if (!nimUsers.isEmpty()) {
2424
users.addAll(nimUsers);
2525
}

0 commit comments

Comments
 (0)