chore: Combine mimetype types in send file dialog logic

pull/1626/head
Krille 1 week ago
parent 2e40c432a3
commit 1c5580ba62
No known key found for this signature in database
GPG Key ID: E067ECD60F1A0652

@ -161,8 +161,9 @@ class SendFileDialogState extends State<SendFileDialog> {
final theme = Theme.of(context);
var sendStr = L10n.of(context).sendFile;
final uniqueMimeType = widget.files
final uniqueFileType = widget.files
.map((file) => file.mimeType ?? lookupMimeType(file.name))
.map((mimeType) => mimeType?.split('/').first)
.toSet()
.singleOrNull;
@ -175,15 +176,15 @@ class SendFileDialogState extends State<SendFileDialog> {
.join(', ')
.toUpperCase();
if (uniqueMimeType?.startsWith('image') ?? false) {
if (uniqueFileType == 'image') {
if (widget.files.length == 1) {
sendStr = L10n.of(context).sendImage;
} else {
sendStr = L10n.of(context).sendImages(widget.files.length);
}
} else if (uniqueMimeType?.startsWith('audio') ?? false) {
} else if (uniqueFileType == 'audio') {
sendStr = L10n.of(context).sendAudio;
} else if (uniqueMimeType?.startsWith('video') ?? false) {
} else if (uniqueFileType == 'video') {
sendStr = L10n.of(context).sendVideo;
}
@ -201,7 +202,7 @@ class SendFileDialogState extends State<SendFileDialog> {
mainAxisSize: MainAxisSize.min,
children: [
const SizedBox(height: 12),
if (uniqueMimeType?.startsWith('image') ?? false)
if (uniqueFileType == 'image')
Padding(
padding: const EdgeInsets.only(bottom: 16.0),
child: SizedBox(
@ -233,17 +234,17 @@ class SendFileDialogState extends State<SendFileDialog> {
),
),
),
if (uniqueMimeType?.startsWith('image') != true)
if (uniqueFileType != 'image')
Padding(
padding: const EdgeInsets.only(bottom: 16.0),
child: Row(
children: [
Icon(
uniqueMimeType == null
uniqueFileType == null
? Icons.description_outlined
: uniqueMimeType.startsWith('video')
: uniqueFileType == 'video'
? Icons.video_file_outlined
: uniqueMimeType.startsWith('audio')
: uniqueFileType == 'audio'
? Icons.audio_file_outlined
: Icons.description_outlined,
size: 32,
@ -272,9 +273,7 @@ class SendFileDialogState extends State<SendFileDialog> {
),
),
// Workaround for SwitchListTile.adaptive crashes in CupertinoDialog
if (uniqueMimeType != null &&
(uniqueMimeType.startsWith('image') ||
uniqueMimeType.startsWith('video')))
if ({'image', 'video'}.contains(uniqueFileType))
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
@ -282,7 +281,7 @@ class SendFileDialogState extends State<SendFileDialog> {
.contains(theme.platform))
CupertinoSwitch(
value: compress,
onChanged: uniqueMimeType.startsWith('video') &&
onChanged: uniqueFileType == 'video' &&
!PlatformInfos.isMobile
? null
: (v) => setState(() => compress = v),
@ -290,7 +289,7 @@ class SendFileDialogState extends State<SendFileDialog> {
else
Switch.adaptive(
value: compress,
onChanged: uniqueMimeType.startsWith('video') &&
onChanged: uniqueFileType == 'video' &&
!PlatformInfos.isMobile
? null
: (v) => setState(() => compress = v),

Loading…
Cancel
Save