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

View File

@ -53,10 +53,6 @@ public class LoginActivity extends AppCompatActivity {
Const.Companion.setToken(token); Const.Companion.setToken(token);
Const.Companion.setUid(uid); Const.Companion.setUid(uid);
Intent intent = new Intent(LoginActivity.this, ConversationActivity.class); 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); startActivity(intent);
finish(); finish();
}); });

View File

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

View File

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