| 
					
				 | 
			
			
				@@ -55,6 +55,7 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   bool isReverse = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   bool openChat = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Uint8List? _image; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  String locale = 'id'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   @override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   void initState() { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -66,6 +67,13 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     super.initState(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  @override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  void didChangeDependencies() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    super.didChangeDependencies(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    locale = context.locale.toString() == 'zh' ? 'zh-cn' : context.locale.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   getData() async { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     idChat = U.decodeBase64Url(_sharedPreferencesManager.getString(SharedPreferencesManager.keyAccessCode)!) + '-' + widget.data['ticketNo']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!kIsWeb) imagePath = await token.getPath() + '/TelNow/Images/'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -73,7 +81,7 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (res != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       username = res['userId']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       getMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      getCollectionData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // getCollectionData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -91,16 +99,15 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (mymess.containsKey('_embedded')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List data = mymess['_embedded']['myMessages']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (int i = 0; i < data.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (username == data[i]['from']['user']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (username == data[i]['from']['user'] && data[i]['senderType'] != 'SERVANT') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             data[i]['selected'] = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(U.autoTranslate()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               data[i]['translate'] = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          setState(() => messageData.insert(0, data[i])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          messageData.insert(0, data[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           downloadImage(data[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -126,40 +133,56 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getCollectionData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  translateMessage(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var locale = context.locale.toString() == 'zh' ? 'zh-cn' : context.locale.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  translateMessage() async{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    var loc = locale == 'zh' ? 'zh-cn' : locale; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     messageData.forEach((element) async{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (username != element['from']['user'] && element['translate'] == '') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        var translate = await translator.translate(element['msg']??'', to: locale); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        setState(() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (element['senderType'] == 'SERVANT' && element['translate'] == '') { // && username != element['from']['user'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          var translate = await translator.translate(element['msg'] ?? '', to: loc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           element['translate'] = translate.text; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }catch(e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          print("Error translate: ${e.toString()}"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    setState(() {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   getCollectionData() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    FirebaseFirestore.instance.collection("tmMessages").doc('messages').collection(idChat!).snapshots().listen((querySnapshot) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      setState(() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      FirebaseFirestore.instance.collection("tmMessages").doc('messages').collection(idChat!).snapshots().listen((querySnapshot) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         querySnapshot.docChanges.forEach((result) async { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           var data = result.doc.data(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (result.type == DocumentChangeType.added && isAfterLoad) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ((username == data!['from']['user'] && messageData.where((element) => element['uniqueId'] == data['uniqueId']).length > 0) || (username != data['from']['user'] && data['readStatus'] == 'DELETED')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (username == data!['from']['user'] && data!['senderType'] != 'SERVANT') && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    messageData.where((element) => element['uniqueId'] == data['uniqueId']).isNotEmpty 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (username != data['from']['user'] && data['readStatus'] == 'DELETED') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               int index = messageData.indexWhere((element) => element['uniqueId'] == data['uniqueId']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               messageData[index]['read'] = data['read']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               messageData[index]['readStatus'] = data['readStatus']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               messageData[index]['imageUrl'] = data['imageUrl']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               if(U.autoTranslate()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var locale = context.locale.toString() == 'zh' ? 'zh-cn' : context.locale.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var translate = await translator.translate(data['msg']??'', to: locale); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                data['translate'] = translate.text; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  var translate = await translator.translate(data['msg']??'', to: locale); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  data['translate'] = translate.text; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }catch(e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  print("Error translate: ${e.toString()}"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              bool alreadyExists = messageData.any((element) => element['uniqueId'] == data['uniqueId']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if (!alreadyExists) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                messageData.add(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              messageData.add(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             downloadImage(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } else if (result.type == DocumentChangeType.modified && isAfterLoad) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (messageData.where((element) => element['uniqueId'] == data!['uniqueId']).length > 0) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -168,10 +191,16 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               messageData[index]['readStatus'] = data['readStatus']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if(mounted) setState(() {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }catch(e){} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(mounted) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      setState(() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         isAfterLoad = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Future<bool> cacheImage(String url, BuildContext context) async { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -292,9 +321,7 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             child: Container( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               alignment: Alignment.topCenter, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               width: U.bodyWidth(context), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              child: messageData.length == 0 && !isAfterLoad ? loadingTemplate(() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              },) : SingleChildScrollView( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              child: messageData.length == 0 && !isAfterLoad ? loadingTemplate((){}) : SingleChildScrollView( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 controller: scrollController, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 reverse: isReverse, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 padding: EdgeInsets.fromLTRB(10, 10, 10, 7), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -304,7 +331,7 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     bool isNip = i == 0 ? true : !hideDate ? true : messageData[i]['from']['user'] == messageData[i - 1]['from']['user'] ? false : true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return Column( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       children: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        !hideDate ? Container(margin: EdgeInsets.only(bottom: 5), child: bubble_chat(Text(convertDate(messageData[i]['datetime'], context.locale.toString()), textAlign: TextAlign.center, style: TextStyle(fontSize: 12)), null, false, false)) : Container(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        !hideDate ? Container(margin: EdgeInsets.only(bottom: 5), child: bubleChat(Text(convertDate(messageData[i]['datetime'], locale), textAlign: TextAlign.center, style: TextStyle(fontSize: 12)), null, false, false)) : Container(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         Builder(builder: (context) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           var isMe = username == messageData[i]['from']['user'] && messageData[i]['senderType'] == 'INFORMANT'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           var isImage = messageData[i]['imageUrl'] != null && messageData[i]['imageUrl'] != '' && messageData[i]['readStatus'] != 'DELETED'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -375,7 +402,7 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         onTap: () => kIsWeb ? navigateTo(context, PhotoPreview('forum'.tr(), messageData[i]['imageUrl'], true)) : File(imagePath! + getImageName(messageData[i]['imageUrl'])).existsSync() ? navigateTo(context, PhotoPreview('forum'.tr(), File(imagePath! + getImageName(messageData[i]['imageUrl'])), false)) : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                       ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     ) : Container(width: 1), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    messageData[i]['readStatus'] == 'DELETED' ? Text('deletedMessage'.tr(), style: TextStyle(fontSize: 14, color: Colors.white70, fontStyle: FontStyle.italic)) : messageData[i]['msg'] != null && messageData[i]['msg'] != '' ? SelectableAutoLinkText( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    messageData[i]['readStatus'] == 'DELETED' ? Text('deletedMessage'.tr(), style: TextStyle(fontSize: 14, fontStyle: FontStyle.italic)) : messageData[i]['msg'] != null && messageData[i]['msg'] != '' ? SelectableAutoLinkText( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                       messageData[i]['msg'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                       style: TextStyle(fontSize: 14, color: Colors.black), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                       linkStyle: TextStyle(color: Colors.blueAccent), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -406,7 +433,7 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             text: TextSpan(children: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                               TextSpan(text: DateFormat('HH:mm').format(DateTime.parse(messageData[i]['datetime'])), style: TextStyle(fontSize: 12, color: Colors.black38)), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                               WidgetSpan( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                  child: Padding( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                  child: !isMe ? SizedBox() : Padding( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                       padding: const EdgeInsets.only(left: 3), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                       child: Icon(messageData[i]['read'] == null ? Icons.done : Icons.done_all, color: messageData[i]['read'] != null && messageData[i]['read'] ? Colors.green : Colors.black38, size: 15) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                   ) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -418,7 +445,7 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                               flex: 8, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                               child: Column( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 children: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                  bubble_chat(widget, timeBubble, isNip, isMe), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                  bubleChat(widget, timeBubble, isNip, isMe), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                   SizedBox(height: 5), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -612,7 +639,7 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           ):U.getInternetStatus()?Center(child: Padding( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             padding: EdgeInsets.symmetric(vertical: 20), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            child: bubble_chat(Text('chatClosed'.tr(), textAlign: TextAlign.center, style: TextStyle(fontSize: 12)), null, false, false), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            child: bubleChat(Text('chatClosed'.tr(), textAlign: TextAlign.center, style: TextStyle(fontSize: 12)), null, false, false), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           )):Container() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -662,7 +689,7 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  Widget bubble_chat(Widget child, Widget? time, bool isNip, bool isMe) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Widget bubleChat(Widget child, Widget? time, bool isNip, bool isMe) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     bool isDate = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (time == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       isDate = true; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -670,6 +697,7 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Color color = isMe ? primaryColor.withValues(alpha: 0.3) : isDate ? Color(0xffD5F5FF) : Color(0xffECECEC); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     var clipPath = ClipPath( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      clipper: isMe ? MyClipper(isNip) : YourClipper(isNip), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       child: ConstrainedBox( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         constraints: BoxConstraints(minWidth: 75), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         child: Container( 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -694,7 +722,6 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      clipper: isMe ? MyClipper(isNip) : YourClipper(isNip), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return Padding(padding: EdgeInsets.only(right: isNip && isMe ? 0 : 6, left: isNip && !isMe ? 0 : 6), child: clipPath); 
			 |