From a58a1b4576038315a6b375b553ea7babaaf8e119 Mon Sep 17 00:00:00 2001 From: Chris Bobbe Date: Tue, 1 Aug 2023 17:29:23 -0700 Subject: [PATCH] lightbox [nfc]: Store src as Uri object, not string The most interesting consequence of this is that _LightboxHeroTag now compares `src` using Uri's == operator override, instead of string equality on the result of Uri.toString(). Discussion: https://github.com/zulip/zulip-flutter/pull/247#pullrequestreview-1559993051 --- lib/widgets/content.dart | 4 ++-- lib/widgets/lightbox.dart | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/widgets/content.dart b/lib/widgets/content.dart index ed4344d55a..fceb8bd8a4 100644 --- a/lib/widgets/content.dart +++ b/lib/widgets/content.dart @@ -224,7 +224,7 @@ class MessageImage extends StatelessWidget { return GestureDetector( onTap: () { Navigator.of(context).push(getLightboxRoute( - context: context, message: message, src: resolvedSrc.toString())); + context: context, message: message, src: resolvedSrc)); }, child: Align( alignment: Alignment.centerLeft, @@ -241,7 +241,7 @@ class MessageImage extends StatelessWidget { color: const Color.fromRGBO(0, 0, 0, 0.03), child: LightboxHero( message: message, - src: resolvedSrc.toString(), + src: resolvedSrc, child: RealmContentNetworkImage( resolvedSrc.toString(), filterQuality: FilterQuality.medium)))))); diff --git a/lib/widgets/lightbox.dart b/lib/widgets/lightbox.dart index e68e15a64d..2bed58e9e9 100644 --- a/lib/widgets/lightbox.dart +++ b/lib/widgets/lightbox.dart @@ -17,7 +17,7 @@ class _LightboxHeroTag { _LightboxHeroTag({required this.messageId, required this.src}); final int messageId; - final String src; + final Uri src; @override bool operator ==(Object other) { @@ -40,7 +40,7 @@ class LightboxHero extends StatelessWidget { }); final Message message; - final String src; + final Uri src; final Widget child; @override @@ -66,7 +66,7 @@ class LightboxHero extends StatelessWidget { class _CopyLinkButton extends StatelessWidget { const _CopyLinkButton({required this.url}); - final String url; + final Uri url; @override Widget build(BuildContext context) { @@ -76,7 +76,7 @@ class _CopyLinkButton extends StatelessWidget { onPressed: () async { // TODO(i18n) copyWithPopup(context: context, successContent: const Text('Link copied'), - data: ClipboardData(text: url)); + data: ClipboardData(text: url.toString())); }); } } @@ -90,7 +90,7 @@ class _LightboxPage extends StatefulWidget { final Animation routeEntranceAnimation; final Message message; - final String src; + final Uri src; @override State<_LightboxPage> createState() => _LightboxPageState(); @@ -197,7 +197,7 @@ class _LightboxPageState extends State<_LightboxPage> { child: LightboxHero( message: widget.message, src: widget.src, - child: RealmContentNetworkImage(widget.src, filterQuality: FilterQuality.medium))))))), + child: RealmContentNetworkImage(widget.src.toString(), filterQuality: FilterQuality.medium))))))), bottomNavigationBar: bottomAppBar)); } } @@ -205,7 +205,7 @@ class _LightboxPageState extends State<_LightboxPage> { Route getLightboxRoute({ required BuildContext context, required Message message, - required String src + required Uri src, }) { return AccountPageRouteBuilder( context: context,