35 lines
		
	
	
		
			952 B
		
	
	
	
		
			Dart
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			952 B
		
	
	
	
		
			Dart
		
	
	
	
| import 'package:matrix/matrix.dart';
 | |
| 
 | |
| extension FileDescriptionExtension on Event {
 | |
|   String? get fileDescription {
 | |
|     if (!{
 | |
|       MessageTypes.File,
 | |
|       MessageTypes.Image,
 | |
|       MessageTypes.Audio,
 | |
|       MessageTypes.Video,
 | |
|     }.contains(messageType)) {
 | |
|       return null;
 | |
|     }
 | |
|     final formattedBody = content.tryGet<String>('formatted_body');
 | |
|     if (formattedBody != null) return formattedBody;
 | |
| 
 | |
|     final filename = content.tryGet<String>('filename');
 | |
|     final body = content.tryGet<String>('body');
 | |
|     if (filename != body && body != null && filename != null) return body;
 | |
|     return null;
 | |
|   }
 | |
|   bool get isRichFileDescription {
 | |
|     if (!{
 | |
|       MessageTypes.File,
 | |
|       MessageTypes.Image,
 | |
|       MessageTypes.Audio,
 | |
|       MessageTypes.Video,
 | |
|     }.contains(messageType)) {
 | |
|       return false;
 | |
|     }
 | |
|     final formattedBody = content.tryGet<String>('formatted_body');
 | |
|     if (formattedBody != null) return true;
 | |
|     return false;
 | |
|   }
 | |
| }
 |