Skip to content

Commit

Permalink
🎉Release 1.3,调整ChatCore相关代码,ChatCore代码添加注释,客户板日志抓取(BETA)
Browse files Browse the repository at this point in the history
  • Loading branch information
Hny0305Lin committed Jul 16, 2024
1 parent 68f3f2f commit 8ba8250
Show file tree
Hide file tree
Showing 6 changed files with 135 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,36 @@ public class ChatMessage {
private boolean isDebug;
private boolean isMe;

/**
* 构造方法,适用于User消息
* @param message User消息
* @param timestamp User消息时间
* @param isUser 传参
*/
public ChatMessage(String message, String timestamp, boolean isUser) {
this.message = message;
this.timestamp = timestamp;
this.isUser = isUser;
}

/**
* 构造方法,适用于Debug日志消息
* @param message Debug日志内容
* @param isDebug 传参
* @param loglevel 日志等级
*/
public ChatMessage(String message, boolean isDebug, int loglevel) {
this.message = message;
this.isDebug = isDebug;
this.loglevel = loglevel;
}

/**
* 构造方法,适用于Me消息
* @param message Me消息
* @param isMe 传参
* @param timestamp Me消息时间
*/
public ChatMessage(String message, boolean isMe, String timestamp) {
this.message = message;
this.timestamp = timestamp;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import android.annotation.SuppressLint;
import android.util.Log;
import android.widget.TextView;

import androidx.recyclerview.widget.RecyclerView;

Expand All @@ -21,31 +20,27 @@ public class ChatMessageQueueUpdater {
private ChatTimestamp chatTimestamp = new ChatTimestamp(); // 聊天时间戳

private Queue<String> messageQueue; // 消息队列
private TextView textView; // 显示消息的 TextView
private List<ChatMessage> chatMessages; // 聊天消息列表
private ChatAdapter chatAdapter; // 聊天适配器
private String logPrefix; // 日志前缀,用于区分不同的消息队列
private int loglevel;
private RecyclerView recyclerView; // RecyclerView实例

/**
* 构造函数
*
* 构造函数,适用于User和Me消息
* @param messageQueue 消息队列
* @param textView 显示消息的 TextView
* @param logPrefix 日志前缀
*/
public ChatMessageQueueUpdater(TextView textView, Queue<String> messageQueue, List<ChatMessage> chatMessages, ChatAdapter chatAdapter, String logPrefix, RecyclerView recyclerView) {
public ChatMessageQueueUpdater(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;
}

/**
* 构造函数
* 构造函数,适用于Debug日志消息
* @param messageQueue 消息队列
* @param loglevel 日志等级
*/
Expand Down Expand Up @@ -91,19 +86,19 @@ public void updateTextView() {
Log.v(TAG, "isMe:" + isMe);

if (isUser) {
String timestamp = chatTimestamp.getCurrentTimestamp(); // 获取当前时间戳
String timestamp = chatTimestamp.getCurrentTimestamp(); // 获取当前时间戳,展示在ChatUI上
chatMessages.add(new ChatMessage(newMessage, timestamp, isUser));
} else if (isDebug) {
chatMessages.add(new ChatMessage(newMessage, isDebug, loglevel));
} else if (isMe) {
String timestamp = chatTimestamp.getCurrentTimestamp(); // 获取当前时间戳
String timestamp = chatTimestamp.getCurrentTimestamp(); // 获取当前时间戳,展示在ChatUI上
chatMessages.add(new ChatMessage(newMessage, isMe, timestamp));
}
}
chatAdapter.updateMessages(chatMessages, recyclerView); // 更新消息并滚动到底部
// 旧UI处理
// textView.setText(allMessages.toString());

// Log.i(TAG, logPrefix + "消息队列有改动");

// 在处理完所有消息后,清空 messageQueue,确保不会重复处理相同的消息。
messageQueue.clear();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

public class ChatProcessorForExtract {
private static final String TAG = "ChatProcessorForExtract & NLChat";
private static Handler HhandlerClipBoard;
public static Handler HhandlerClipBoard;

//用于存储提取到的内容
private static StringBuilder extractedNumbers = new StringBuilder();
Expand Down Expand Up @@ -183,7 +183,7 @@ public void run() {
}
}

private static class ClipboardRunnable implements Runnable {
public static class ClipboardRunnable implements Runnable {
// 定义静态全局变量来管理延迟时间
public static final long DELAY_VERY_SHORT = 15000; // 15秒
public static final long DELAY_SHORT = 30000; // 30秒
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ public class ChatUtils {
private static final boolean setDebugLog = true; // 控制是否启用显示串口Log,打印在UI上(开发者使用)
private static final boolean scrollingMessages = true; // 控制是否启用滚动消息功能
private static boolean clipMessages = true; // 控制是否启用剪贴板功能

//这里设置的是数据库相关
private static boolean sqlitemanager = true; // 控制是否启用SQLite存储功能
private static boolean sqlitehistory = false; // 控制是否启用SQLite历史记录显示功能
Expand Down Expand Up @@ -70,7 +69,9 @@ public static String getPrefixClient() {
return PREFIX_CLIENT;
}

//串口Log
/* 如下为串口Log内容,有服务板和客户板的
* 如果不懂怎么判断该方法是否为两者其中之一,请多用Ctrl键定位。
*/
public static String getPrefixLogConnected() {
return PREFIX_LOG_CONNECTED;
}
Expand Down Expand Up @@ -110,4 +111,52 @@ public static String getPrefixLogSsapsMtuChanged() {
public static String getPrefixLogSleAnnounceEnableCallback() {
return PREFIX_LOG_SLE_ANNOUNCE_ENABLE_CALLBACK;
}

public static String getPrefixLogSleUartClient() {
return PREFIX_LOG_SLE_UART_CLIENT;
}

public static String getPrefixLogClientConnectStateChanged() {
return PREFIX_LOG_CLIENT_CONNECT_STATE_CHANGED;
}

public static String getPrefixLogClientStateConnected() {
return PREFIX_LOG_CLIENT_STATE_CONNECTED;
}

public static String getPrefixLogClientLowRx() {
return PREFIX_LOG_CLIENT_LOW_RX;
}

public static String getPrefixLogClientPairComplete() {
return PREFIX_LOG_CLIENT_PAIR_COMPLETE;
}

public static String getPrefixLogClientNearlinkDevicesAddr() {
return PREFIX_LOG_CLIENT_NEARLINK_DEVICES_ADDR;
}

public static String getPrefixLogClientSsapcExchange() {
return PREFIX_LOG_CLIENT_SSAPC_EXCHANGE;
}

public static String getPrefixLogClientSleAnnounceEnableCallback() {
return PREFIX_LOG_CLIENT_SLE_ANNOUNCE_ENABLE_CALLBACK;
}

public static String getPrefixLogClientSleDiscovery() {
return PREFIX_LOG_CLIENT_SLE_DISCOVERY;
}

public static String getPrefixLogClientMtu() {
return PREFIX_LOG_CLIENT_MTU;
}

public static String getPrefixLogClientSampleFindPCbk() {
return PREFIX_LOG_CLIENT_SAMPLE_FIND_P_CBK;
}

public static String getPrefixLogClientSampleFindSdCbk() {
return PREFIX_LOG_CLIENT_SAMPLE_FIND_SD_CBK;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -405,10 +405,9 @@ public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent
recyclerView.setAdapter(chatAdapter);

//聊天初始化
serverUpdater = new ChatMessageQueueUpdater(NearLinkUserText, serverMessageQueue, chatMessages, chatAdapter, "User: ", recyclerView);
serverUpdater = new ChatMessageQueueUpdater(serverMessageQueue, chatMessages, chatAdapter, "User: ", recyclerView);
serverDebugUpdater = new ChatMessageQueueUpdater(serverDebugQueue, chatMessages, chatAdapter, "Debug: ", recyclerView, LogLevel);

clientUpdater = new ChatMessageQueueUpdater(NearLinkMeText, clientMessageQueue, chatMessages, chatAdapter, "Me: ", recyclerView);
clientUpdater = new ChatMessageQueueUpdater(clientMessageQueue, chatMessages, chatAdapter, "Me: ", recyclerView);

//聊天串口为INFO
// serverDebugSetColor = new ChatMessageQueueUpdater(LogLevel);
Expand Down Expand Up @@ -832,6 +831,60 @@ private String CH34xProcessingForReadData(String string) {
}
}
}
//UART服务器日志相关,客户端星闪MAC,为防止获取不到先判断
if (completeFirstData.contains(ChatUtils.getPrefixLogClientPairComplete())) {
// 处理采集到客户端星闪MAC地址完成日志
if (ChatUtils.isClipMessages()) {
Log.d(TAG, "采集到客户端星闪MAC地址日志:" + completeFirstData + ",将进入剪贴板!");
ChatProcessorForExtract.initializeHandler();
ChatProcessorForExtract.processChat(context, completeFirstData);
}

ChatUtils.setShowUartLog(true);
if (ChatUtils.isShowUartLog()) {
Log.d(TAG, "采集到客户端星闪MAC地址日志:" + completeFirstData + ",是否显示?:" + true);
if (ChatUtils.isSetDebugLog()) {
Log.d(TAG, "采集到客户端星闪MAC地址日志:" + completeFirstData + ",是否设置打开?:" + true);
return completeFirstData;
} else {
Log.d(TAG, "采集到客户端星闪MAC地址日志:" + completeFirstData + ",是否设置打开?:" + false);
}
}
}
//UART客户端日志相关,连接状态
if (completeFirstData.contains(ChatUtils.getPrefixLogClientConnectStateChanged())) {
Log.d(TAG, "客户端连接状态改变日志:" + completeFirstData);
// 处理连接状态改变日志

ChatUtils.setShowUartLog(true);
if (ChatUtils.isShowUartLog()) {
Log.d(TAG, "客户端连接状态改变日志:" + completeFirstData + ",是否显示?:" + true);
if (ChatUtils.isSetDebugLog()) {
Log.d(TAG, "客户端连接状态改变日志:" + completeFirstData + ",是否设置打开?:" + true);
return completeFirstData;
} else {
Log.d(TAG, "客户端连接状态改变日志:" + completeFirstData + ",是否设置打开?:" + false);
}
}
}
//UART客户端日志
if (completeFirstData.contains(ChatUtils.getPrefixLogSleUartClient())) {
Log.d(TAG, "UART客户端日志:" + completeFirstData);
// 处理UART服务器日志

ChatUtils.setShowUartLog(true);
if (ChatUtils.isShowUartLog()) {
Log.d(TAG, "UART客户端日志:" + completeFirstData + ",是否显示?:" + true);
if (ChatUtils.isSetDebugLog()) {
Log.d(TAG, "UART客户端日志:" + completeFirstData + ",是否设置打开?:" + true);
return completeFirstData;
} else {
Log.d(TAG, "UART客户端日志:" + completeFirstData + ",是否设置打开?:" + false);
}
}
}


/* 这里可以添加末尾无换行符判断的代码 */
}
return "";
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.266.2024.0716</string>
<string name="app_version">1.3.269.2024.0716</string>

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

0 comments on commit 8ba8250

Please sign in to comment.