1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-06-19 00:05:16 +00:00

Cache parsed emojies

This commit is contained in:
2020-04-16 14:07:21 +02:00
parent 6e96a554ff
commit 824be11013
7 changed files with 64 additions and 31 deletions

View File

@ -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;

View 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;
}
}

View File

@ -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;