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,16 +105,37 @@ 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)) {
recyclerView.post {
if (index == 0) {
adapter.notifyItemChanged(index) 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!!)
}
if (isEnd) {
if (number > 1) {
val list = adapter.data
list.sortByDescending { it.lastMsgTimestamp }
adapter.setList(list)
recyclerView.post {
recyclerView.scrollToPosition(0) recyclerView.scrollToPosition(0)
} }
} }
number = 0;
}
}
findViewById<AppCompatImageView>(R.id.addIV).setOnClickListener { findViewById<AppCompatImageView>(R.id.addIV).setOnClickListener {
showInputChannelIDDialog() showInputChannelIDDialog()
} }

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);
} }

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",