Implement Image viewer
This commit is contained in:
parent
32cf2e245a
commit
2242309086
6 changed files with 78 additions and 31 deletions
|
|
@ -1,7 +1,6 @@
|
|||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:famedlysdk/famedlysdk.dart';
|
||||
import 'package:fluffychat/utils/app_route.dart';
|
||||
import 'package:fluffychat/views/content_web_view.dart';
|
||||
import 'package:fluffychat/views/image_viewer.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
|
|
@ -35,12 +34,7 @@ class ContentBanner extends StatelessWidget {
|
|||
);
|
||||
return InkWell(
|
||||
onTap: () => mxContent.mxc?.isNotEmpty ?? false
|
||||
? Navigator.of(context).push(
|
||||
AppRoute.defaultRoute(
|
||||
context,
|
||||
ContentWebView(mxContent),
|
||||
),
|
||||
)
|
||||
? ImageViewer.show(context, mxContent)
|
||||
: null,
|
||||
child: Container(
|
||||
height: 300,
|
||||
|
|
|
|||
|
|
@ -3,10 +3,9 @@ import 'package:famedlysdk/famedlysdk.dart';
|
|||
import 'package:fluffychat/components/message_content.dart';
|
||||
import 'package:fluffychat/components/reply_content.dart';
|
||||
import 'package:fluffychat/i18n/i18n.dart';
|
||||
import 'package:fluffychat/utils/app_route.dart';
|
||||
import 'package:fluffychat/utils/date_time_extension.dart';
|
||||
import 'package:fluffychat/utils/string_color.dart';
|
||||
import 'package:fluffychat/views/content_web_view.dart';
|
||||
import 'package:fluffychat/views/image_viewer.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../avatar.dart';
|
||||
|
|
@ -133,12 +132,7 @@ class Message extends StatelessWidget {
|
|||
: Avatar(
|
||||
event.sender.avatarUrl,
|
||||
event.sender.calcDisplayname(),
|
||||
onTap: () => Navigator.of(context).push(
|
||||
AppRoute.defaultRoute(
|
||||
context,
|
||||
ContentWebView(event.sender.avatarUrl),
|
||||
),
|
||||
),
|
||||
onTap: () => ImageViewer.show(context, event.sender.avatarUrl),
|
||||
);
|
||||
if (ownMessage) {
|
||||
rowChildren.add(avatarOrSizedBox);
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import 'package:fluffychat/i18n/i18n.dart';
|
|||
import 'package:fluffychat/utils/app_route.dart';
|
||||
import 'package:fluffychat/utils/event_extension.dart';
|
||||
import 'package:fluffychat/views/content_web_view.dart';
|
||||
import 'package:fluffychat/views/image_viewer.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:link_text/link_text.dart';
|
||||
|
|
@ -27,7 +28,8 @@ class MessageContent extends StatelessWidget {
|
|||
case MessageTypes.Image:
|
||||
case MessageTypes.Sticker:
|
||||
final int size = 400;
|
||||
final String src = MxContent(event.content["url"]).getThumbnail(
|
||||
final MxContent content = MxContent(event.content["url"]);
|
||||
final String src = content.getThumbnail(
|
||||
Matrix.of(context).client,
|
||||
width: size * MediaQuery.of(context).devicePixelRatio,
|
||||
height: size * MediaQuery.of(context).devicePixelRatio,
|
||||
|
|
@ -38,21 +40,23 @@ class MessageContent extends StatelessWidget {
|
|||
radius: Radius.circular(10),
|
||||
elevation: 0,
|
||||
child: InkWell(
|
||||
onTap: () => Navigator.of(context).push(
|
||||
AppRoute.defaultRoute(
|
||||
context,
|
||||
ContentWebView(MxContent(event.content["url"])),
|
||||
),
|
||||
onTap: () => ImageViewer.show(context, content),
|
||||
child: Container(
|
||||
height: size.toDouble(),
|
||||
width: size.toDouble(),
|
||||
child: kIsWeb
|
||||
? Image.network(
|
||||
src,
|
||||
fit: BoxFit.cover,
|
||||
)
|
||||
: CachedNetworkImage(
|
||||
imageUrl: src,
|
||||
fit: BoxFit.cover,
|
||||
placeholder: (c, s) => Center(
|
||||
child: CircularProgressIndicator(),
|
||||
),
|
||||
),
|
||||
),
|
||||
child: kIsWeb
|
||||
? Image.network(
|
||||
src,
|
||||
width: size.toDouble(),
|
||||
)
|
||||
: CachedNetworkImage(
|
||||
imageUrl: src,
|
||||
width: size.toDouble(),
|
||||
),
|
||||
),
|
||||
);
|
||||
case MessageTypes.Audio:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue