2020-04-24 12:40:24 +00:00
|
|
|
import 'dart:typed_data';
|
|
|
|
|
|
|
|
import 'package:esys_flutter_share/esys_flutter_share.dart';
|
2020-07-07 22:04:08 +00:00
|
|
|
import 'package:flutter/widgets.dart';
|
2020-06-19 23:03:26 +00:00
|
|
|
import 'package:photos/models/file.dart';
|
2020-04-24 12:40:24 +00:00
|
|
|
import 'package:path/path.dart';
|
2020-07-15 19:14:37 +00:00
|
|
|
import 'package:photos/utils/dialog_util.dart';
|
2020-04-24 12:40:24 +00:00
|
|
|
|
2020-07-07 22:04:08 +00:00
|
|
|
Future<void> share(BuildContext context, File file) async {
|
2020-07-15 19:14:37 +00:00
|
|
|
final dialog = createProgressDialog(context, "Preparing...");
|
2020-07-07 22:04:08 +00:00
|
|
|
await dialog.show();
|
2020-06-19 23:03:26 +00:00
|
|
|
final bytes = await file.getBytes();
|
|
|
|
final filename = _getFilename(file.title);
|
|
|
|
final ext = extension(file.title);
|
|
|
|
final shareExt = file.title.endsWith(".HEIC")
|
2020-05-30 21:26:26 +00:00
|
|
|
? "jpg"
|
|
|
|
: ext.substring(1, ext.length).toLowerCase();
|
2020-07-07 22:04:08 +00:00
|
|
|
await dialog.hide();
|
2020-05-30 21:26:26 +00:00
|
|
|
return Share.file(filename, filename, bytes, "image/" + shareExt);
|
2020-04-24 12:40:24 +00:00
|
|
|
}
|
|
|
|
|
2020-07-07 22:04:08 +00:00
|
|
|
Future<void> shareMultiple(BuildContext context, List<File> files) async {
|
2020-07-15 19:14:37 +00:00
|
|
|
final dialog = createProgressDialog(context, "Preparing...");
|
2020-07-07 22:04:08 +00:00
|
|
|
await dialog.show();
|
2020-04-24 12:40:24 +00:00
|
|
|
final shareContent = Map<String, Uint8List>();
|
2020-06-19 23:03:26 +00:00
|
|
|
for (File file in files) {
|
|
|
|
shareContent[_getFilename(file.title)] = await file.getBytes();
|
2020-04-24 12:40:24 +00:00
|
|
|
}
|
2020-07-07 22:04:08 +00:00
|
|
|
await dialog.hide();
|
2020-04-24 12:40:24 +00:00
|
|
|
return Share.files("images", shareContent, "*/*");
|
|
|
|
}
|
2020-05-25 15:07:22 +00:00
|
|
|
|
2020-05-30 21:26:26 +00:00
|
|
|
String _getFilename(String name) {
|
|
|
|
if (name.endsWith(".HEIC")) {
|
|
|
|
return name.substring(0, name.lastIndexOf(".HEIC")) + ".JPG";
|
2020-05-25 15:07:22 +00:00
|
|
|
} else {
|
2020-05-30 21:26:26 +00:00
|
|
|
return name;
|
2020-05-25 15:07:22 +00:00
|
|
|
}
|
|
|
|
}
|