mirror of
https://github.com/krille-chan/fluffychat
synced 2024-10-05 13:52:46 +00:00
design: Display images in correct ratio in timeline
This commit is contained in:
parent
19dab63858
commit
2104793ecd
2 changed files with 19 additions and 8 deletions
|
@ -15,8 +15,8 @@ class ImageBubble extends StatelessWidget {
|
|||
final Color? backgroundColor;
|
||||
final bool thumbnailOnly;
|
||||
final bool animated;
|
||||
final double width;
|
||||
final double height;
|
||||
final double? width;
|
||||
final double? height;
|
||||
final void Function()? onTap;
|
||||
final BorderRadius? borderRadius;
|
||||
|
||||
|
@ -25,7 +25,7 @@ class ImageBubble extends StatelessWidget {
|
|||
this.tapToView = true,
|
||||
this.maxSize = true,
|
||||
this.backgroundColor,
|
||||
this.fit = BoxFit.cover,
|
||||
this.fit = BoxFit.contain,
|
||||
this.thumbnailOnly = true,
|
||||
this.width = 400,
|
||||
this.height = 300,
|
||||
|
@ -98,8 +98,8 @@ class ImageBubble extends StatelessWidget {
|
|||
child: ConstrainedBox(
|
||||
constraints: maxSize
|
||||
? BoxConstraints(
|
||||
maxWidth: width,
|
||||
maxHeight: height,
|
||||
maxWidth: width ?? double.infinity,
|
||||
maxHeight: height ?? double.infinity,
|
||||
)
|
||||
: const BoxConstraints.expand(),
|
||||
child: MxcImage(
|
||||
|
|
|
@ -106,11 +106,22 @@ class MessageContent extends StatelessWidget {
|
|||
case EventTypes.Sticker:
|
||||
switch (event.messageType) {
|
||||
case MessageTypes.Image:
|
||||
const width = 200;
|
||||
const ratio = 2.0;
|
||||
final w = event.content
|
||||
.tryGetMap<String, Object?>('info')
|
||||
?.tryGet<int>('w') ??
|
||||
width;
|
||||
final h = event.content
|
||||
.tryGetMap<String, Object?>('info')
|
||||
?.tryGet<int>('h') ??
|
||||
width;
|
||||
final overRatio = h > w * ratio;
|
||||
return ImageBubble(
|
||||
event,
|
||||
width: 400,
|
||||
height: 300,
|
||||
fit: BoxFit.cover,
|
||||
height: overRatio ? width * ratio : null,
|
||||
width: width.toDouble(),
|
||||
fit: overRatio ? BoxFit.cover : BoxFit.contain,
|
||||
borderRadius: borderRadius,
|
||||
);
|
||||
case MessageTypes.Sticker:
|
||||
|
|
Loading…
Reference in a new issue