create downloadInBackground function, add some checks
This commit is contained in:
parent
b2c71b1403
commit
ae8fb70a4a
|
|
@ -69,4 +69,9 @@ class DownloadManagerController extends State<DownloadManager>
|
||||||
Widget build(BuildContext context) => DownloadManagerView(this);
|
Widget build(BuildContext context) => DownloadManagerView(this);
|
||||||
|
|
||||||
final List<Download> downloads = [];
|
final List<Download> downloads = [];
|
||||||
|
void download(BuildContext context, String name, String url) async {
|
||||||
|
final dl = Download(context, url, name);
|
||||||
|
downloads.add(dl);
|
||||||
|
dl.start();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import 'dart:developer';
|
import 'dart:developer';
|
||||||
|
|
||||||
|
import 'package:extera_next/pages/download_manager/download_manager.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.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/utils/size_string.dart';
|
||||||
import 'package:extera_next/widgets/future_loading_dialog.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';
|
import 'matrix_file_extension.dart';
|
||||||
|
|
||||||
extension LocalizedBody on Event {
|
extension LocalizedBody on Event {
|
||||||
|
|
@ -19,10 +22,18 @@ extension LocalizedBody on Event {
|
||||||
|
|
||||||
void saveFile(BuildContext context) async {
|
void saveFile(BuildContext context) async {
|
||||||
final matrixFile = await _getFile(context);
|
final matrixFile = await _getFile(context);
|
||||||
|
|
||||||
matrixFile.result?.save(context);
|
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 {
|
void shareFile(BuildContext context) async {
|
||||||
final matrixFile = await _getFile(context);
|
final matrixFile = await _getFile(context);
|
||||||
inspect(matrixFile);
|
inspect(matrixFile);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue