Skip to content

Commit b3caef8

Browse files
guangyaoguangyao
authored andcommitted
2 parents 36d176a + 36de63c commit b3caef8

File tree

5 files changed

+40
-4
lines changed

5 files changed

+40
-4
lines changed

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

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.netease.im.uikit.common.util.sys.ScreenUtil;
2727
import com.netease.im.uikit.contact.core.ContactProvider;
2828
import com.netease.im.uikit.contact.core.query.PinYin;
29+
import com.netease.im.uikit.session.helper.MessageHelper;
2930
import com.netease.nimlib.sdk.NIMClient;
3031
import com.netease.nimlib.sdk.Observer;
3132
import com.netease.nimlib.sdk.SDKOptions;
@@ -104,7 +105,7 @@ public static void init(Context context, Class mainActivityClass, @DrawableRes i
104105
initKit();
105106

106107
}
107-
NIMClient.getService(MsgServiceObserve.class).observeCustomNotification(notificationObserver, true);
108+
108109
}
109110

110111
private static Observer<CustomNotification> notificationObserver = new Observer<CustomNotification>() {
@@ -243,13 +244,30 @@ public static void initKit() {
243244
StorageUtil.init(context, null);
244245
ScreenUtil.init(context);
245246

247+
// 注册消息撤回监听器
248+
registerMsgRevokeObserver();
249+
250+
// NIMClient.getService(MsgServiceObserve.class).observeCustomNotification(notificationObserver, true);
251+
246252
// init log
247253
String path = StorageUtil.getDirectoryByDirType(StorageType.TYPE_LOG);
248254
LogUtil.init(path, Log.DEBUG);
249255

250256

251257
}
252258

259+
private static void registerMsgRevokeObserver() {
260+
NIMClient.getService(MsgServiceObserve.class).observeRevokeMessage(new Observer<IMMessage>() {
261+
@Override
262+
public void onEvent(IMMessage message) {
263+
if (message == null) {
264+
return;
265+
}
266+
267+
MessageHelper.getInstance().onRevokeMessage(message);
268+
}
269+
}, true);
270+
}
253271
// 初始化用户信息提供者
254272
private static void initUserInfoProvider(UserInfoProvider userInfoProvider) {
255273

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

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import android.Manifest;
55
import android.app.Activity;
66
import android.content.Intent;
7+
import android.content.pm.PackageManager;
8+
import android.os.Build;
79
import android.os.Handler;
810
import android.os.Looper;
911
import android.text.TextUtils;
@@ -142,6 +144,7 @@ public void login(String contactId, String token, final Promise promise) {
142144
// LogUtil.i(TAG, "contactId:" + contactId);
143145
// LogUtil.i(TAG, "token:" + token);
144146
// LogUtil.i(TAG, "md5:" + MD5.getStringMD5(token));
147+
// NIMClient.getService(AuthService.class).openLocalCache(contactId);
145148
LoginService.getInstance().login(new LoginInfo(contactId, token), new RequestCallback<LoginInfo>() {
146149
@Override
147150
public void onSuccess(LoginInfo loginInfo) {
@@ -1598,7 +1601,15 @@ public void run() {
15981601
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
15991602
}
16001603
});
1601-
audioMessageService.startAudioRecord(reactContext);
1604+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
1605+
if (getCurrentActivity().checkSelfPermission(Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED) {
1606+
audioMessageService.startAudioRecord(reactContext);
1607+
} else {
1608+
requestBasicPermission();
1609+
}
1610+
} else {
1611+
audioMessageService.startAudioRecord(reactContext);
1612+
}
16021613
}
16031614

16041615
@ReactMethod

android/src/main/java/com/netease/im/login/LoginService.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import android.content.Context;
55

66
import com.netease.im.IMApplication;
7+
import com.netease.im.session.SessionUtil;
78
import com.netease.im.team.TeamListService;
89
import com.netease.im.uikit.LoginSyncDataStatusObserver;
910
import com.netease.im.uikit.cache.DataCacheManager;
@@ -14,6 +15,7 @@
1415
import com.netease.nimlib.sdk.auth.AuthService;
1516
import com.netease.nimlib.sdk.auth.LoginInfo;
1617
import com.netease.nimlib.sdk.friend.model.AddFriendNotify;
18+
import com.netease.nimlib.sdk.msg.MsgServiceObserve;
1719
import com.netease.nimlib.sdk.msg.constant.SystemMessageType;
1820
import com.netease.nimlib.sdk.msg.model.CustomNotification;
1921
import com.netease.nimlib.sdk.msg.model.SystemMessage;
@@ -115,15 +117,15 @@ synchronized void registerObserver(boolean register) {
115117
recentContactObserver.registerRecentContactObserver(register);
116118
// sysMessageObserver.registerSystemObserver(register);
117119
// NIMClient.getService(SystemMessageObserver.class).observeReceiveSystemMsg(systemMessageObserver, register);
118-
// NIMClient.getService(MsgServiceObserve.class).observeCustomNotification(notificationObserver, register);
120+
NIMClient.getService(MsgServiceObserve.class).observeCustomNotification(notificationObserver, register);
119121
}
120122

121123
private NotificationManager notificationManager;
122124
private Observer<CustomNotification> notificationObserver = new Observer<CustomNotification>() {
123125
@Override
124126
public void onEvent(CustomNotification customNotification) {
125127

126-
// SessionUtil.receiver(getNotificationManager(),customNotification);
128+
SessionUtil.receiver(getNotificationManager(),customNotification);
127129
}
128130
};
129131

android/src/main/java/com/netease/im/login/SysMessageObserver.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ public void loadMessages(boolean refresh) {
5757
List<SystemMessage> temps = NIMClient.getService(SystemMessageService.class)
5858
.querySystemMessagesBlock(loadOffset, LOAD_MESSAGE_COUNT);
5959

60+
if (temps == null) {
61+
break;
62+
}
6063
loadOffset += temps.size();
6164
loadCompleted = temps.size() < LOAD_MESSAGE_COUNT;
6265

android/src/main/java/com/netease/im/session/SessionService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,7 @@ public void onEvent(IMMessage message) {
371371
}
372372

373373
deleteItem(message, false);
374+
MessageHelper.getInstance().onRevokeMessage(message);
374375
}
375376
};
376377
private UserInfoObservable.UserInfoObserver uinfoObserver;
@@ -565,6 +566,7 @@ public void sendTextMessage(String content, List<String> selectedMembers, OnSend
565566

566567
if (selectedMembers != null && !selectedMembers.isEmpty()) {
567568
MemberPushOption option = createMemPushOption(selectedMembers, message);
569+
message.setPushContent("有人@了你");
568570
message.setMemberPushOption(option);
569571
}
570572
sendMessage(message, onSendMessageListener);

0 commit comments

Comments
 (0)