diff --git a/lib/components/avatar.dart b/lib/components/avatar.dart index 70bee188..066139bc 100644 --- a/lib/components/avatar.dart +++ b/lib/components/avatar.dart @@ -12,19 +12,21 @@ class Avatar extends StatelessWidget { final double size; final Function onTap; static const double defaultSize = 44; + final Client client; const Avatar( this.mxContent, this.name, { this.size = defaultSize, this.onTap, + this.client, Key key, }) : super(key: key); @override Widget build(BuildContext context) { var thumbnail = mxContent?.getThumbnail( - Matrix.of(context).client, + client ?? Matrix.of(context).client, width: size * MediaQuery.of(context).devicePixelRatio, height: size * MediaQuery.of(context).devicePixelRatio, ); diff --git a/lib/components/content_banner.dart b/lib/components/content_banner.dart index 7d8d81ed..314d45a0 100644 --- a/lib/components/content_banner.dart +++ b/lib/components/content_banner.dart @@ -11,12 +11,14 @@ class ContentBanner extends StatelessWidget { final IconData defaultIcon; final bool loading; final Function onEdit; + final Client client; const ContentBanner(this.mxContent, {this.height = 400, this.defaultIcon = Icons.people_outline, this.loading = false, this.onEdit, + this.client, Key key}) : super(key: key); @@ -26,7 +28,7 @@ class ContentBanner extends StatelessWidget { final bannerSize = (mediaQuery.size.width * mediaQuery.devicePixelRatio).toInt(); final src = mxContent?.getThumbnail( - Matrix.of(context).client, + client ?? Matrix.of(context).client, width: bannerSize, height: bannerSize, method: ThumbnailMethod.scale, diff --git a/lib/components/input_bar.dart b/lib/components/input_bar.dart index 5169c2d2..0dc9d2a3 100644 --- a/lib/components/input_bar.dart +++ b/lib/components/input_bar.dart @@ -4,6 +4,7 @@ import 'package:famedlysdk/famedlysdk.dart'; import 'package:flutter_typeahead/flutter_typeahead.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'avatar.dart'; +import 'matrix.dart'; class InputBar extends StatelessWidget { final Room room; @@ -138,7 +139,11 @@ class InputBar extends StatelessWidget { return ret; } - Widget buildSuggestion(BuildContext context, Map suggestion) { + Widget buildSuggestion( + BuildContext context, + Map suggestion, + Client client, + ) { if (suggestion['type'] == 'emote') { final size = 30.0; final ratio = MediaQuery.of(context).devicePixelRatio; @@ -182,8 +187,12 @@ class InputBar extends StatelessWidget { child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Avatar(url, suggestion['displayname'] ?? suggestion['mxid'], - size: size), + Avatar( + url, + suggestion['displayname'] ?? suggestion['mxid'], + size: size, + client: client, + ), SizedBox(width: 6), Text(suggestion['displayname'] ?? suggestion['mxid']), ], @@ -283,7 +292,7 @@ class InputBar extends StatelessWidget { textCapitalization: TextCapitalization.sentences, ), suggestionsCallback: getSuggestions, - itemBuilder: buildSuggestion, + itemBuilder: (c, s) => buildSuggestion(c, s, Matrix.of(context).client), onSuggestionSelected: (Map suggestion) => insertSuggestion(context, suggestion), errorBuilder: (BuildContext context, Object error) => Container(), diff --git a/lib/components/matrix.dart b/lib/components/matrix.dart index 5c5be5aa..1fcdd8e8 100644 --- a/lib/components/matrix.dart +++ b/lib/components/matrix.dart @@ -310,7 +310,7 @@ class MatrixState extends State { final Set verificationMethods = { KeyVerificationMethod.numbers }; - if (PlatformInfos.isMobile) { + if (PlatformInfos.isMobile || (!kIsWeb && Platform.isLinux)) { // emojis don't show in web somehow verificationMethods.add(KeyVerificationMethod.emoji); } diff --git a/lib/components/user_bottom_sheet.dart b/lib/components/user_bottom_sheet.dart index d1874435..8ee19463 100644 --- a/lib/components/user_bottom_sheet.dart +++ b/lib/components/user_bottom_sheet.dart @@ -208,6 +208,7 @@ class UserBottomSheet extends StatelessWidget { child: ContentBanner( user.avatarUrl, defaultIcon: Icons.person_outline, + client: user.room.client, ), ), ListTile(