From 55ce5dd28ebc352edba2582850955125550047ad Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Fri, 3 Jan 2020 09:20:30 +0100 Subject: [PATCH] Add image viewer --- lib/components/list_items/chat_list_item.dart | 2 +- lib/components/list_items/message.dart | 2 +- lib/components/message_content.dart | 21 +++++++++++++++---- lib/utils/{ChatTime.dart => chat_time.dart} | 18 ++++++++-------- 4 files changed, 28 insertions(+), 15 deletions(-) rename lib/utils/{ChatTime.dart => chat_time.dart} (87%) diff --git a/lib/components/list_items/chat_list_item.dart b/lib/components/list_items/chat_list_item.dart index d432660d..97dc67f0 100644 --- a/lib/components/list_items/chat_list_item.dart +++ b/lib/components/list_items/chat_list_item.dart @@ -1,6 +1,6 @@ import 'package:famedlysdk/famedlysdk.dart'; import 'package:fluffychat/components/message_content.dart'; -import 'package:fluffychat/utils/ChatTime.dart'; +import 'package:fluffychat/utils/chat_time.dart'; import 'package:fluffychat/utils/app_route.dart'; import 'package:fluffychat/views/chat.dart'; import 'package:flutter/material.dart'; diff --git a/lib/components/list_items/message.dart b/lib/components/list_items/message.dart index cf875159..abf365db 100644 --- a/lib/components/list_items/message.dart +++ b/lib/components/list_items/message.dart @@ -2,7 +2,7 @@ import 'package:bubble/bubble.dart'; import 'package:famedlysdk/famedlysdk.dart'; import 'package:fluffychat/components/dialogs/redact_message_dialog.dart'; import 'package:fluffychat/components/message_content.dart'; -import 'package:fluffychat/utils/ChatTime.dart'; +import 'package:fluffychat/utils/chat_time.dart'; import 'package:flutter/material.dart'; import '../avatar.dart'; diff --git a/lib/components/message_content.dart b/lib/components/message_content.dart index 328b0d25..25f98d7c 100644 --- a/lib/components/message_content.dart +++ b/lib/components/message_content.dart @@ -1,5 +1,3 @@ -import 'dart:math'; - import 'package:bubble/bubble.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:famedlysdk/famedlysdk.dart'; @@ -19,8 +17,19 @@ class MessageContent extends StatelessWidget { @override Widget build(BuildContext context) { final int maxLines = textOnly ? 1 : null; + switch (event.type) { case EventTypes.Image: + if (textOnly) { + return Text( + "${event.sender.calcDisplayname()} has sent an image", + maxLines: maxLines, + style: TextStyle( + color: textColor, + decoration: event.redacted ? TextDecoration.lineThrough : null, + ), + ); + } final int size = 400; final String src = MxContent(event.content["url"]).getThumbnail( Matrix.of(context).client, @@ -30,7 +39,7 @@ class MessageContent extends StatelessWidget { ); return Bubble( padding: BubbleEdges.all(0), - radius: Radius.circular(50), + radius: Radius.circular(10), elevation: 0, child: InkWell( onTap: () => launch( @@ -70,8 +79,12 @@ class MessageContent extends StatelessWidget { case EventTypes.Text: case EventTypes.Reply: case EventTypes.Notice: + String senderPrefix = event.senderId == Matrix.of(context).client.userID + ? "You: " + : "${event.sender.calcDisplayname()}: "; return Text( - event.getBody(), + senderPrefix + event.getBody(), + maxLines: maxLines, style: TextStyle( color: textColor, decoration: event.redacted ? TextDecoration.lineThrough : null, diff --git a/lib/utils/ChatTime.dart b/lib/utils/chat_time.dart similarity index 87% rename from lib/utils/ChatTime.dart rename to lib/utils/chat_time.dart index 96dd4ff8..408bb2b5 100644 --- a/lib/utils/ChatTime.dart +++ b/lib/utils/chat_time.dart @@ -56,24 +56,24 @@ class ChatTime { } else if (sameWeek) { switch (dateTime.weekday) { case 1: - return "Montag"; + return "Monday"; case 2: - return "Dienstag"; + return "Tuesday"; case 3: - return "Mittwoch"; + return "Wednesday"; case 4: return "Donnerstag"; case 5: - return "Freitag"; + return "Thursday"; case 6: - return "Samstag"; + return "Saturday"; case 7: - return "Sonntag"; + return "Sunday"; } } else if (sameYear) { - return "${_z(dateTime.day)}.${_z(dateTime.month)}"; + return "${dateTime.month.toString().padLeft(2, '0')}-${dateTime.day.toString().padLeft(2, '0')}"; } - return "${_z(dateTime.day)}.${_z(dateTime.month)}.${_z(dateTime.year)}"; + return "${dateTime.year.toString()}-${dateTime.month.toString().padLeft(2, '0')}-${dateTime.day.toString().padLeft(2, '0')}"; } /// Returns the milliseconds since the Unix epoch. @@ -111,7 +111,7 @@ class ChatTime { /// Returns a simple time String. String toTimeString() { - return "${_z(dateTime.hour)}:${_z(dateTime.minute)}"; + return "${_z(dateTime.hour % 12)}:${_z(dateTime.minute)} ${dateTime.hour > 11 ? 'pm' : 'am'}"; } /// If the ChatTime is today, this returns [toTimeString()], if not it also