私聊改造:UI完善,私聊页代码精简

This commit is contained in:
huangjian
2023-01-31 15:37:20 +08:00
parent 3379aeed02
commit 0ba0aed40f
17 changed files with 401 additions and 636 deletions

View File

@@ -23,8 +23,6 @@ import com.mango.moshen.ui.im.avtivity.NewBaseMessageActivity;
import com.mango.moshen.ui.im.fragment.MessageFragment;
import com.mango.xchat_android_library.utils.SingleToastUtil;
import com.netease.nim.uikit.api.NimUIKit;
import com.netease.nim.uikit.api.model.contact.ContactChangedObserver;
import com.netease.nim.uikit.api.model.main.OnlineStateChangeObserver;
import com.netease.nim.uikit.api.model.user.UserInfoObserver;
import com.netease.nim.uikit.business.session.constant.Extras;
import com.netease.nim.uikit.business.uinfo.UserInfoHelper;
@@ -37,9 +35,6 @@ import com.netease.nimlib.sdk.msg.model.CustomNotification;
import org.greenrobot.eventbus.EventBus;
import java.util.List;
import java.util.Set;
/**
* 点对点聊天界面
@@ -48,51 +43,16 @@ import java.util.Set;
*/
public class NimRoomP2PMessageActivity extends NewBaseMessageActivity {
ContactChangedObserver friendDataChangedObserver = new ContactChangedObserver() {
@Override
public void onAddedOrUpdatedFriends(List<String> accounts) {
setTitle(UserInfoHelper.getUserTitleName(sessionId, SessionTypeEnum.P2P));
}
@Override
public void onDeletedFriends(List<String> accounts) {
setTitle(UserInfoHelper.getUserTitleName(sessionId, SessionTypeEnum.P2P));
}
@Override
public void onAddUserToBlackList(List<String> account) {
// whetherBlack();
// setTitle(UserInfoHelper.getUserTitleName(sessionId, SessionTypeEnum.P2P));
}
@Override
public void onRemoveUserFromBlackList(List<String> account) {
//whetherBlack();
// setTitle(UserInfoHelper.getUserTitleName(sessionId, SessionTypeEnum.P2P));
}
};
OnlineStateChangeObserver onlineStateChangeObserver = new OnlineStateChangeObserver() {
@Override
public void onlineStateChange(Set<String> accounts) {
// 更新 toolbar
if (accounts.contains(sessionId)) {
// 按照交互来展示
displayOnlineState();
}
}
};
private boolean isResume = false;
/**
* 命令消息接收观察者
*/
Observer<CustomNotification> commandObserver = new Observer<CustomNotification>() {
@Override
public void onEvent(CustomNotification message) {
if (!sessionId.equals(message.getSessionId()) || message.getSessionType() != SessionTypeEnum.P2P) {
return;
}
showCommandMessage(message);
Observer<CustomNotification> commandObserver = message -> {
if (!sessionId.equals(message.getSessionId()) || message.getSessionType() != SessionTypeEnum.P2P) {
return;
}
showCommandMessage(message);
};
private View tipsLayout;
private ImageView closeIcon;
@@ -116,13 +76,8 @@ public class NimRoomP2PMessageActivity extends NewBaseMessageActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 单聊特例话数据,包括个人信息,黑名单
//addBlackList();
// setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
requestBuddyInfo();
displayOnlineState();
registerObservers(true);
registerOnlineStateChangeListener(true);
IMNetEaseManager.get().getChatRoomEventObservable()
.compose(bindToLifecycle())
.filter(roomEvent -> roomEvent.getEvent() == RoomEvent.KICK_OUT_ROOM)
@@ -139,7 +94,6 @@ public class NimRoomP2PMessageActivity extends NewBaseMessageActivity {
if (!TextUtils.isEmpty(this.sessionId) && !this.sessionId.equals(sessionId)) {
this.sessionId = sessionId;
requestBuddyInfo();
displayOnlineState();
displayAntiFraudTips();
messageFragment = (MessageFragment) switchContent(fragment(intent));
}
@@ -173,7 +127,6 @@ public class NimRoomP2PMessageActivity extends NewBaseMessageActivity {
protected void onDestroy() {
super.onDestroy();
registerObservers(false);
registerOnlineStateChangeListener(false);
}
@Override
@@ -205,32 +158,14 @@ public class NimRoomP2PMessageActivity extends NewBaseMessageActivity {
unregisterUserInfoObserver();
}
NIMClient.getService(MsgServiceObserve.class).observeCustomNotification(commandObserver, register);
NimUIKit.getContactChangedObservable().registerObserver(friendDataChangedObserver, register);
}
private void registerOnlineStateChangeListener(boolean register) {
if (!NimUIKitImpl.enableOnlineState()) {
return;
}
NimUIKitImpl.getOnlineStateChangeObservable().registerOnlineStateChangeListeners(onlineStateChangeObserver, register);
}
private void displayOnlineState() {
if (!NimUIKitImpl.enableOnlineState()) {
return;
}
String detailContent = NimUIKitImpl.getOnlineStateContentProvider().getDetailDisplay(sessionId);
setSubTitle(detailContent);
}
private void registerUserInfoObserver() {
if (uinfoObserver == null) {
uinfoObserver = new UserInfoObserver() {
@Override
public void onUserInfoChanged(List<String> accounts) {
if (accounts.contains(sessionId)) {
requestBuddyInfo();
}
uinfoObserver = accounts -> {
if (accounts.contains(sessionId)) {
requestBuddyInfo();
}
};
}
@@ -276,11 +211,6 @@ public class NimRoomP2PMessageActivity extends NewBaseMessageActivity {
return fragment;
}
@Override
protected void initToolBar() {
}
@Override
protected boolean needSteepStateBar() {
return false;