chore: Combine mimetype types in send file dialog logic
This commit is contained in:
parent
2e40c432a3
commit
1c5580ba62
1 changed files with 13 additions and 14 deletions
|
|
@ -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…
Add table
Reference in a new issue