create downloadInBackground function, add some checks

This commit is contained in:
OfficialDakari 2025-09-09 09:45:02 +05:00
parent b2c71b1403
commit ae8fb70a4a
2 changed files with 17 additions and 1 deletions

View File

@ -69,4 +69,9 @@ class DownloadManagerController extends State<DownloadManager>
Widget build(BuildContext context) => DownloadManagerView(this);
final List<Download> downloads = [];
void download(BuildContext context, String name, String url) async {
final dl = Download(context, url, name);
downloads.add(dl);
dl.start();
}
}

View File

@ -1,5 +1,6 @@
import 'dart:developer';
import 'package:extera_next/pages/download_manager/download_manager.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
@ -8,6 +9,8 @@ import 'package:matrix/matrix.dart';
import 'package:extera_next/utils/size_string.dart';
import 'package:extera_next/widgets/future_loading_dialog.dart';
import 'package:mime/mime.dart';
import 'package:provider/provider.dart';
import 'matrix_file_extension.dart';
extension LocalizedBody on Event {
@ -23,6 +26,14 @@ extension LocalizedBody on Event {
matrixFile.result?.save(context);
}
void downloadInBackground(BuildContext context) async {
if (this.hasAttachment && this.status.isSent && !room.encrypted) {
final dmc = Provider.of<DownloadManagerController>(context);
final filename = content.tryGet<String>('filename') ?? body;
dmc.download(context, "$filename.${roomId!.substring(0, 4)}.${eventId.substring(0, 4)}.${extensionFromMime(attachmentMimetype)}", attachmentMxcUrl.toString());
}
}
void shareFile(BuildContext context) async {
final matrixFile = await _getFile(context);
inspect(matrixFile);