@@ -5444,12 +5444,14 @@ public void generateLayout(TLRPC.User fromUser) {
5444
5444
//替换markdown样式
5445
5445
if (BuildVars .IS_CHAT_AIR && UserConfig .getInstance (currentAccount ).renderMarkdown ) {
5446
5446
//处理旋转导致messageText.toString()获取的为markdown已经处理文本格式
5447
- if (TextUtils .isEmpty (tempMessage )
5448
- || (messageOwner .message != null && messageOwner .message .length () != messageLength )) {
5449
- tempMessage = messageText .toString ();
5450
- messageLength = messageOwner .message .length ();
5451
- }
5447
+
5448
+ processMessage (true );
5449
+
5452
5450
messageText = replaceMarkdown (tempMessage , this .messageOwner );
5451
+ } else if (messageOwner .reasoningMessage != null && !(messageOwner .reasoningMessage .isEmpty ())) {
5452
+ // 处理思考
5453
+ processMessage (false );
5454
+ messageText = tempMessage ;
5453
5455
}
5454
5456
5455
5457
StaticLayout textLayout ;
@@ -5700,6 +5702,57 @@ public void generateLayout(TLRPC.User fromUser) {
5700
5702
}
5701
5703
}
5702
5704
5705
+ private void processMessage (boolean renderMarkdown ) {
5706
+
5707
+ if (isReasoningMessage (messageOwner .reasoningMessage )
5708
+ && !isAutoHideReasoningMessage (messageOwner )) {
5709
+ // 渲染思考以及正文
5710
+
5711
+ int count = 0 ;
5712
+
5713
+ if (messageOwner .message != null ) {
5714
+ count += messageOwner .message .length ();
5715
+ }
5716
+ count += messageOwner .reasoningMessage .length ();
5717
+
5718
+ if (TextUtils .isEmpty (tempMessage ) || count != messageLength ) {
5719
+
5720
+ tempMessage = SendMessagesHelper .getReasoningMessageContent (
5721
+ messageOwner .reasoningMessage , messageOwner .message , renderMarkdown );
5722
+ messageLength = count ;
5723
+ }
5724
+
5725
+ } else {
5726
+ // 渲染正文
5727
+ if (TextUtils .isEmpty (tempMessage ) || messageOwner .message != null && messageOwner .message .length () != messageLength ) {
5728
+ tempMessage = messageText .toString ();
5729
+ messageLength = messageOwner .message .length ();
5730
+ }
5731
+ }
5732
+ }
5733
+
5734
+ public static Boolean isReasoningMessage (String reasoningMessage ) {
5735
+ return reasoningMessage != null
5736
+ && !reasoningMessage .isEmpty ()
5737
+ && !reasoningMessage .isBlank ();
5738
+ }
5739
+
5740
+ private Boolean isAutoHideReasoningMessage (TLRPC .Message messageOwner ) {
5741
+ boolean isHideReasoning = UserConfig .getInstance (currentAccount ).isHideReasoning ;
5742
+
5743
+ if (isHideReasoning ) {
5744
+ if (messageOwner == null ) return false ;
5745
+ if (isReasoningMessage (messageOwner .reasoningMessage )) {
5746
+ String message = messageOwner .message ;
5747
+ if (!message .isEmpty () && !message .isBlank ()) {
5748
+ return true ;
5749
+ }
5750
+ }
5751
+ }
5752
+
5753
+ return false ;
5754
+ }
5755
+
5703
5756
private Markwon getMarkdwon () {
5704
5757
5705
5758
markwon = Markwon .builder (ApplicationLoader .applicationContext )
0 commit comments