私聊改造:UI完善,私聊页代码精简
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user