fix:add order message

This commit is contained in:
SL 2024-11-01 21:13:57 +08:00
parent 12a4df84b5
commit ab6bdbd514
4 changed files with 45 additions and 24 deletions

View File

@ -2,14 +2,12 @@ package com.xinbida.wukongdemo
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.AppCompatImageView
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.lxj.xpopup.XPopup
import com.xinbida.wukongdemo.Const.Companion.token
import com.xinbida.wukongim.WKIM
import com.xinbida.wukongim.entity.WKChannelType
import com.xinbida.wukongim.message.type.WKConnectStatus
@ -21,18 +19,16 @@ class ConversationActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.act_conv_layout)
initView()
initListener()
initData()
WKIM.getInstance().isDebug = true
// 初始化
WKIM.getInstance().init(this, Const.uid, token)
WKIM.getInstance().init(this, Const.uid, Const.token)
// 连接
WKIM.getInstance().connectionManager.connection()
initData()
}
private fun initView() {
@ -48,7 +44,6 @@ class ConversationActivity : AppCompatActivity() {
WKIM.getInstance().connectionManager.addOnConnectionStatusListener(
"conv"
) { code, _ ->
Log.e("连接撞头", "$code")
when (code) {
WKConnectStatus.connecting -> {
titleTv.setText(R.string.connecting)
@ -65,9 +60,11 @@ class ConversationActivity : AppCompatActivity() {
WKConnectStatus.syncMsg -> {
titleTv.setText(R.string.connect_syncing)
}
WKConnectStatus.noNetwork -> {
titleTv.setText(R.string.no_net)
}
WKConnectStatus.syncCompleted -> {
titleTv.setText(R.string.connect_success)
}
@ -89,11 +86,12 @@ class ConversationActivity : AppCompatActivity() {
}
}
}
var number = 0
WKIM.getInstance().conversationManager.addOnRefreshMsgListener(
"conv"
) { uiConversationMsg, _ ->
) { uiConversationMsg, isEnd ->
var isAdd = true
number++
for (index in adapter.data.indices) {
if (adapter.data[index].channelID == uiConversationMsg?.channelID) {
isAdd = false
@ -107,14 +105,35 @@ class ConversationActivity : AppCompatActivity() {
adapter.data[index].lastMsgTimestamp =
uiConversationMsg.lastMsgTimestamp
if (recyclerView.scrollState == RecyclerView.SCROLL_STATE_IDLE || (!recyclerView.isComputingLayout)) {
adapter.notifyItemChanged(index)
recyclerView.post {
if (index == 0) {
adapter.notifyItemChanged(index)
} else {
adapter.removeAt(index)
adapter.addData(0, uiConversationMsg)
recyclerView.post {
recyclerView.scrollToPosition(0)
}
}
}
}
break
}
}
if (isAdd) {
adapter.addData(0, uiConversationMsg!!)
recyclerView.scrollToPosition(0)
}
if (isEnd) {
if (number > 1) {
val list = adapter.data
list.sortByDescending { it.lastMsgTimestamp }
adapter.setList(list)
recyclerView.post {
recyclerView.scrollToPosition(0)
}
}
number = 0;
}
}
findViewById<AppCompatImageView>(R.id.addIV).setOnClickListener {

View File

@ -53,10 +53,6 @@ public class LoginActivity extends AppCompatActivity {
Const.Companion.setToken(token);
Const.Companion.setUid(uid);
Intent intent = new Intent(LoginActivity.this, ConversationActivity.class);
// Intent intent = new Intent(LoginActivity.this, MainActivity.class);
// intent.putExtra("uid", uid);
// intent.putExtra("token", token);
startActivity(intent);
finish();
});

View File

@ -61,7 +61,10 @@ public class MainActivity extends AppCompatActivity {
if (isLoading) {
return;
}
long orderSeq = adapter.getData().get(0).msg.orderSeq;
long orderSeq = 0;
if (!adapter.getData().isEmpty()) {
orderSeq = adapter.getData().get(0).msg.orderSeq;
}
getData(orderSeq, 0, false, false);
}
@ -69,7 +72,10 @@ public class MainActivity extends AppCompatActivity {
if (isLoading) {
return;
}
long orderSeq = adapter.getData().get(adapter.getData().size() - 1).msg.orderSeq;
long orderSeq = 0;
if (!adapter.getData().isEmpty()) {
orderSeq = adapter.getData().get(adapter.getData().size() - 1).msg.orderSeq;
}
getData(orderSeq, 1, false, false);
}
@ -142,9 +148,9 @@ public class MainActivity extends AppCompatActivity {
// 新消息监听
WKIM.getInstance().getMsgManager().addOnNewMsgListener("new_msg", msgList -> {
for (WKMsg msg : msgList) {
if (msg.type==56) {
if (msg.type == 56) {
adapter.addData(new UIMessageEntity(msg, 3));
}else {
} else {
adapter.addData(new UIMessageEntity(msg, 0));
}
}
@ -152,9 +158,9 @@ public class MainActivity extends AppCompatActivity {
});
// 监听发送消息入库返回
WKIM.getInstance().getMsgManager().addOnSendMsgCallback("insert_msg", msg -> {
if (msg.type==56){
if (msg.type == 56) {
adapter.addData(new UIMessageEntity(msg, 2));
}else {
} else {
adapter.addData(new UIMessageEntity(msg, 1));
}
recyclerView.scrollToPosition(adapter.getData().size() - 1);

View File

@ -25,8 +25,8 @@ class WKApplication : Application() {
private val avatars = arrayOf(
"https://lmg.jj20.com/up/allimg/tx29/06052048151752929.png",
"https://pic.imeitou.com/uploads/allimg/2021061715/aqg1wx3nsds.jpg",
"https://lmg.jj20.com/up/allimg/tx30/10121138219844229.jpg",
"https://img1.baidu.com/it/u=1653751609,236581088&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=500",
"https://img0.baidu.com/it/u=1008951549,1654888911&fm=253&fmt=auto&app=120&f=JPEG?w=800&h=800",
"https://lmg.jj20.com/up/allimg/tx30/10121138219844229.jpg",
"https://lmg.jj20.com/up/allimg/tx28/430423183653303.jpg",
"https://lmg.jj20.com/up/allimg/tx23/520420024834916.jpg",