mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 00:05:16 +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