send_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String msg = message_tv.getText().toString().trim();
if (msg.isEmpty()) {
MyToast.makeText(ImActivity.this, "请输入需要发送的内容", MyToast.LENGTH_SHORT).show();
return;
}
Conversation conversation = new Conversation();
conversation.type = Conversation.ConversationType.Single;
conversation.line = 0;
conversation.target = userId;
TextMessageContent content = new TextMessageContent();
content.setContent(msg);
Message message = new Message();
message.content = content;
message.direction = MessageDirection.Send;
message.status = MessageStatus.Sent;
message.conversation = conversation;
Im.chatManager.sendMessage(message, new SendMessageCallback() {
@Override
public void onSuccess(long messageUid, long timestamp) {
runOnUiThread(() -> {
message.messageUid = messageUid;
message.serverTime = timestamp;
messageList.add(message);
imMessageAdapter.notifyItemInserted(messageList.size() - 1);
scrollBottom();
message_tv.setText("");
});
}
@Override
public void onFail(int errorCode) {
}
@Override
public void onPrepare(long messageId, long savedTime) {
}
});
}
});
public void getMessage() {
Conversation conversation = new Conversation();
conversation.target = userId;
conversation.line = 0;
conversation.type = Conversation.ConversationType.Single;
Im.chatManager.getUserMessages(userId, conversation, 0, true, 20, new GetMessageCallback() {
@Override
public void onSuccess(List messages, boolean hasMore) {
runOnUiThread(() -> {
messageList.clear();
for (Message message : messages) {
MessageContent messageContent = message.content;
String showText = "";
if (messageContent instanceof TextMessageContent textMsg) {
showText = textMsg.getContent();
} else if (messageContent instanceof TipNotificationContent tipNotificationContent) {
showText = tipNotificationContent.tip;
}
if (!showText.isEmpty()) {
messageList.add(message);
}
}
imMessageAdapter.notifyDataSetChanged();
scrollBottom();
});
}
@Override
public void onFail(int errorCode) {
}
});
}