refactor: Sticker widget code

This commit is contained in:
Krille 2024-03-21 11:59:27 +01:00
parent 989c6146ce
commit 935e7215e4
No known key found for this signature in database
GPG key ID: E067ECD60F1A0652
3 changed files with 5 additions and 50 deletions

View file

@ -90,7 +90,9 @@ class ImageBubble extends StatelessWidget {
fit: fit,
animated: animated,
isThumbnail: thumbnailOnly,
placeholder: _buildPlaceholder,
placeholder: event.messageType == MessageTypes.Sticker
? null
: _buildPlaceholder,
),
),
),

View file

@ -22,7 +22,6 @@ import 'html_message.dart';
import 'image_bubble.dart';
import 'map_bubble.dart';
import 'message_download_content.dart';
import 'sticker.dart';
class MessageContent extends StatelessWidget {
final Event event;
@ -108,6 +107,8 @@ class MessageContent extends StatelessWidget {
case EventTypes.Sticker:
switch (event.messageType) {
case MessageTypes.Image:
case MessageTypes.Sticker:
if (event.redacted) continue textmessage;
const maxSize = 256.0;
final w = event.content
.tryGetMap<String, Object?>('info')
@ -132,12 +133,6 @@ class MessageContent extends StatelessWidget {
fit: BoxFit.contain,
borderRadius: borderRadius,
);
case MessageTypes.Sticker:
if (event.redacted) continue textmessage;
return Sticker(
event,
borderRadius: borderRadius,
);
case CuteEventContent.eventType:
return CuteContent(event);
case MessageTypes.Audio:

View file

@ -1,42 +0,0 @@
import 'package:flutter/material.dart';
import 'package:adaptive_dialog/adaptive_dialog.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:matrix/matrix.dart';
import '../../../config/app_config.dart';
import 'image_bubble.dart';
class Sticker extends StatefulWidget {
final Event event;
final BorderRadius borderRadius;
const Sticker(this.event, {required this.borderRadius, super.key});
@override
StickerState createState() => StickerState();
}
class StickerState extends State<Sticker> {
bool? animated;
@override
Widget build(BuildContext context) {
return ImageBubble(
widget.event,
width: 256,
height: 256,
fit: BoxFit.contain,
borderRadius: widget.borderRadius,
onTap: () {
setState(() => animated = true);
showOkAlertDialog(
context: context,
message: widget.event.body,
okLabel: L10n.of(context)!.ok,
);
},
animated: animated ?? AppConfig.autoplayImages,
);
}
}