Skip to content

Commit

Permalink
🎉Release 1.3,新UI新消息自动置底功能、聊天字体功能取消BETA
Browse files Browse the repository at this point in the history
  • Loading branch information
Hny0305Lin committed Jul 8, 2024
1 parent 703ccde commit e6be888
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/* 受Haohanyh Computer Software Products Open Source LICENSE保护 https://github.com/Hny0305Lin/LICENSE/blob/main/LICENSE */
package com.haohanyh.linmengjia.nearlink.nlchat.fun.ChatCore;

import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
Expand Down Expand Up @@ -106,4 +107,12 @@ void bind(ChatMessage message) {
timestampText.setText(message.getTimestamp());
}
}

// 更新消息列表并滚动到底部
@SuppressLint("NotifyDataSetChanged")
public void updateMessages(List<ChatMessage> newMessages, RecyclerView recyclerView) {
this.chatMessages = newMessages;
notifyDataSetChanged();
recyclerView.scrollToPosition(chatMessages.size() - 1);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import android.util.Log;
import android.widget.TextView;

import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
Expand All @@ -23,6 +25,7 @@ public class ChatMessageQueueUpdater {
private List<ChatMessage> chatMessages; // 聊天消息列表
private ChatAdapter chatAdapter; // 聊天适配器
private String logPrefix; // 日志前缀,用于区分不同的消息队列
private RecyclerView recyclerView; // RecyclerView实例

/**
* 构造函数
Expand All @@ -31,12 +34,13 @@ public class ChatMessageQueueUpdater {
* @param textView 显示消息的 TextView
* @param logPrefix 日志前缀
*/
public ChatMessageQueueUpdater(TextView textView, Queue<String> messageQueue, List<ChatMessage> chatMessages, ChatAdapter chatAdapter, String logPrefix) {
public ChatMessageQueueUpdater(TextView textView, Queue<String> messageQueue, List<ChatMessage> chatMessages, ChatAdapter chatAdapter, String logPrefix, RecyclerView recyclerView) {
this.messageQueue = messageQueue;
this.textView = textView;
this.chatMessages = chatMessages;
this.chatAdapter = chatAdapter;
this.logPrefix = logPrefix;
this.recyclerView = recyclerView;
}

/**
Expand Down Expand Up @@ -68,7 +72,7 @@ public void updateTextView() {
String timestamp = chatTimestamp.getCurrentTimestamp(); // 获取当前时间戳
chatMessages.add(new ChatMessage(newMessage, timestamp, isUser));
}
chatAdapter.notifyDataSetChanged();
chatAdapter.updateMessages(chatMessages, recyclerView); // 更新消息并滚动到底部
// 旧UI处理
textView.setText(allMessages.toString());
Log.i(TAG, logPrefix + "消息队列有改动");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -350,8 +350,8 @@ public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent
recyclerView.setAdapter(chatAdapter);

//聊天初始化
serverUpdater = new ChatMessageQueueUpdater(NearLinkUserText, serverMessageQueue, chatMessages, chatAdapter, "User: ");
clientUpdater = new ChatMessageQueueUpdater(NearLinkMeText, clientMessageQueue, chatMessages, chatAdapter,"Me: ");
serverUpdater = new ChatMessageQueueUpdater(NearLinkUserText, serverMessageQueue, chatMessages, chatAdapter, "User: ", recyclerView);
clientUpdater = new ChatMessageQueueUpdater(NearLinkMeText, clientMessageQueue, chatMessages, chatAdapter,"Me: ", recyclerView);
//聊天数据库初始化
chatSaveMessageDatabaseManager = new ChatSaveMessageDatabaseManager(MainActivity.this);

Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<resources>
<string name="app_name">NLChat</string>
<string name="app_package">com.haohanyh.linmengjia.nearlink.nlchat.fun</string>
<string name="app_version">1.3.129.2024.0708</string>
<string name="app_version">1.3.139.2024.0708</string>

<string name="appwarn">NLChat,浩瀚银河宗旨为用爱和魔法创造Android APP。</string>
<string name="thanks3q">友情感谢</string>
Expand Down

0 comments on commit e6be888

Please sign in to comment.