extract isonlyemoji
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
|
|
||||||
import 'package:emojis/emoji.dart';
|
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -936,16 +935,7 @@ class _MessageWidgetState extends State<MessageWidget> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
final _emojis = Emoji.all();
|
bool get isOnlyEmoji => textIsOnlyEmoji(widget.message.text);
|
||||||
bool get isOnlyEmoji =>
|
|
||||||
widget.message.text.characters.isNotEmpty &&
|
|
||||||
widget.message.text.trim().characters.every((c) =>
|
|
||||||
_emojis.firstWhere(
|
|
||||||
(Emoji emoji) => emoji.char.contains(c),
|
|
||||||
orElse: () => null,
|
|
||||||
) !=
|
|
||||||
null) &&
|
|
||||||
widget.message.text.characters.length < 4;
|
|
||||||
|
|
||||||
Color _getBackgroundColor() {
|
Color _getBackgroundColor() {
|
||||||
if (hasQuotedMessage) {
|
if (hasQuotedMessage) {
|
||||||
|
|||||||
@@ -1,18 +1,17 @@
|
|||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:cached_network_image/cached_network_image.dart';
|
import 'package:cached_network_image/cached_network_image.dart';
|
||||||
import 'package:emojis/emoji.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:stream_chat/stream_chat.dart';
|
import 'package:stream_chat/stream_chat.dart';
|
||||||
import 'package:video_player/video_player.dart';
|
import 'package:video_player/video_player.dart';
|
||||||
|
|
||||||
import 'attachment_error.dart';
|
import 'attachment_error.dart';
|
||||||
|
import 'extension.dart';
|
||||||
import 'image_attachment.dart';
|
import 'image_attachment.dart';
|
||||||
import 'message_text.dart';
|
import 'message_text.dart';
|
||||||
import 'stream_chat_theme.dart';
|
import 'stream_chat_theme.dart';
|
||||||
import 'user_avatar.dart';
|
import 'user_avatar.dart';
|
||||||
import 'utils.dart';
|
import 'utils.dart';
|
||||||
import 'extension.dart';
|
|
||||||
|
|
||||||
typedef QuotedMessageAttachmentThumbnailBuilder = Widget Function(
|
typedef QuotedMessageAttachmentThumbnailBuilder = Widget Function(
|
||||||
BuildContext,
|
BuildContext,
|
||||||
@@ -126,8 +125,7 @@ class QuotedMessageWidget extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildMessage(BuildContext context) {
|
Widget _buildMessage(BuildContext context) {
|
||||||
final isOnlyEmoji =
|
final isOnlyEmoji = textIsOnlyEmoji(message.text);
|
||||||
message.text.characters.every((c) => Emoji.byChar(c) != null);
|
|
||||||
var msg = _hasAttachments && !_containsText
|
var msg = _hasAttachments && !_containsText
|
||||||
? message.copyWith(text: message.attachments.last?.title ?? '')
|
? message.copyWith(text: message.attachments.last?.title ?? '')
|
||||||
: message;
|
: message;
|
||||||
|
|||||||
+15
-2
@@ -1,10 +1,10 @@
|
|||||||
|
import 'package:emojis/emoji.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:stream_chat/stream_chat.dart';
|
import 'package:stream_chat/stream_chat.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
import 'stream_svg_icon.dart';
|
|
||||||
|
|
||||||
import '../stream_chat_flutter.dart';
|
import '../stream_chat_flutter.dart';
|
||||||
|
import 'stream_svg_icon.dart';
|
||||||
|
|
||||||
Future<void> launchURL(BuildContext context, String url) async {
|
Future<void> launchURL(BuildContext context, String url) async {
|
||||||
if (await canLaunch(url)) {
|
if (await canLaunch(url)) {
|
||||||
@@ -215,3 +215,16 @@ StreamSvgIcon getFileTypeImage(String type) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final _emojis = Emoji.all();
|
||||||
|
|
||||||
|
bool textIsOnlyEmoji(String text) {
|
||||||
|
return text.trim().characters.isNotEmpty &&
|
||||||
|
text.trim().characters.every((c) =>
|
||||||
|
_emojis.firstWhere(
|
||||||
|
(Emoji emoji) => emoji.char.contains(c),
|
||||||
|
orElse: () => null,
|
||||||
|
) !=
|
||||||
|
null) &&
|
||||||
|
text.characters.length < 4;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user