mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 04:04:18 +00:00 
			
		
		
		
	Cache parsed emojies
This commit is contained in:
		@@ -1,7 +1,8 @@
 | 
			
		||||
import 'package:comunic/enums/likes_type.dart';
 | 
			
		||||
import 'package:comunic/models/displayed_content.dart';
 | 
			
		||||
import 'package:comunic/models/like_element.dart';
 | 
			
		||||
import 'package:meta/meta.dart';
 | 
			
		||||
import 'package:comunic/utils/account_utils.dart' as account;
 | 
			
		||||
import 'package:meta/meta.dart';
 | 
			
		||||
 | 
			
		||||
/// Comments
 | 
			
		||||
///
 | 
			
		||||
@@ -14,7 +15,7 @@ class Comment implements LikeElement {
 | 
			
		||||
  final int userID;
 | 
			
		||||
  final int postID;
 | 
			
		||||
  final int timeSent;
 | 
			
		||||
  String content;
 | 
			
		||||
  DisplayedString content;
 | 
			
		||||
  final String imageURL;
 | 
			
		||||
  int likes;
 | 
			
		||||
  bool userLike;
 | 
			
		||||
@@ -36,7 +37,8 @@ class Comment implements LikeElement {
 | 
			
		||||
        assert(likes != null),
 | 
			
		||||
        assert(userLike != null);
 | 
			
		||||
 | 
			
		||||
  bool get hasContent => content != null && content.length > 0;
 | 
			
		||||
  bool get hasContent =>
 | 
			
		||||
      content != null && !content.isNull && content.length > 0;
 | 
			
		||||
 | 
			
		||||
  bool get hasImage => imageURL != null;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										38
									
								
								lib/models/displayed_content.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								lib/models/displayed_content.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
import 'package:flutter_emoji/flutter_emoji.dart';
 | 
			
		||||
 | 
			
		||||
/// Optimized colons Emoji-parsed string
 | 
			
		||||
///
 | 
			
		||||
/// @author Pierre Hubert
 | 
			
		||||
 | 
			
		||||
class DisplayedString {
 | 
			
		||||
  String _string;
 | 
			
		||||
  String _parseCache;
 | 
			
		||||
 | 
			
		||||
  DisplayedString(this._string);
 | 
			
		||||
 | 
			
		||||
  int get length => _string.length;
 | 
			
		||||
 | 
			
		||||
  bool get isEmpty => _string.isEmpty;
 | 
			
		||||
 | 
			
		||||
  bool get isNull => _string == null;
 | 
			
		||||
 | 
			
		||||
  String get content => _string;
 | 
			
		||||
 | 
			
		||||
  set content(String content) {
 | 
			
		||||
    _string = content;
 | 
			
		||||
    _parseCache = null;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String toString() {
 | 
			
		||||
    return _string;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  String get parsedString {
 | 
			
		||||
    if (_parseCache == null) {
 | 
			
		||||
      _parseCache = EmojiParser().emojify(this._string);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return _parseCache;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -3,6 +3,7 @@ import 'package:comunic/enums/post_kind.dart';
 | 
			
		||||
import 'package:comunic/enums/post_visibility_level.dart';
 | 
			
		||||
import 'package:comunic/enums/user_access_levels.dart';
 | 
			
		||||
import 'package:comunic/lists/comments_list.dart';
 | 
			
		||||
import 'package:comunic/models/displayed_content.dart';
 | 
			
		||||
import 'package:comunic/models/like_element.dart';
 | 
			
		||||
import 'package:comunic/models/survey.dart';
 | 
			
		||||
import 'package:meta/meta.dart';
 | 
			
		||||
@@ -17,7 +18,7 @@ class Post implements LikeElement {
 | 
			
		||||
  final int userPageID;
 | 
			
		||||
  final int groupID;
 | 
			
		||||
  final int timeSent;
 | 
			
		||||
  String content;
 | 
			
		||||
  DisplayedString content;
 | 
			
		||||
  PostVisibilityLevel visibilityLevel;
 | 
			
		||||
  final PostKind kind;
 | 
			
		||||
  final int fileSize;
 | 
			
		||||
@@ -73,7 +74,7 @@ class Post implements LikeElement {
 | 
			
		||||
 | 
			
		||||
  bool get isGroupPost => groupID != null && groupID > 0;
 | 
			
		||||
 | 
			
		||||
  bool get hasContent => content != null;
 | 
			
		||||
  bool get hasContent => content != null && !content.isNull;
 | 
			
		||||
 | 
			
		||||
  bool get hasComments => comments != null;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user