diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index db834a4..221734f 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -60,6 +60,10 @@
+
+
+
+
diff --git a/lib/app/content/content.dart b/lib/app/content/content.dart
index e820db3..c32c014 100644
--- a/lib/app/content/content.dart
+++ b/lib/app/content/content.dart
@@ -314,6 +314,17 @@ class _AppContentState extends State {
onSelect: () {
SaveFile.downloadAndSave(context, entry.value);
}),
+ MenuItem(
+ text: "Поделиться",
+ onSelect: () async {
+ final file = await SaveFile.downloadAndSaveTmp(entry.value);
+ final mime = lookupMimeType(entry.value);
+ Share.shareFiles(
+ [file.path],
+ mimeTypes: mime != null ? [mime] : null,
+ );
+ },
+ )
]);
return GestureDetector(
onLongPress: () {
diff --git a/lib/app/extensions/youtube/player.dart b/lib/app/extensions/youtube/player.dart
index 867ca77..6f4f495 100644
--- a/lib/app/extensions/youtube/player.dart
+++ b/lib/app/extensions/youtube/player.dart
@@ -96,7 +96,7 @@ class _AppYouTubePlayerState extends State
shouldOverrideUrlLoading: (controller, request) async {
_webView.evaluateJavascript(
source:
- 'document.querySelector(\'iframe\')).contentWindow.postMessage({ type: \'pause\'}, \'*\');');
+ "document.querySelector('iframe').contentWindow.postMessage({ type: 'pause'}, '*');");
canLaunch(request.request.url.toString()).then((value) => value
? launch(request.request.url.toString())
diff --git a/lib/core/common/save-file.dart b/lib/core/common/save-file.dart
index f16ae66..1f40e3b 100644
--- a/lib/core/common/save-file.dart
+++ b/lib/core/common/save-file.dart
@@ -13,7 +13,8 @@ import 'notifications-manager.dart';
import 'snack-bar.dart';
class SaveFile {
- static Future _saveToDir(String filePath, Uint8List data, { bool checkPermissions = false }) async {
+ static Future _saveToDir(String filePath, Uint8List data,
+ {bool checkPermissions = false}) async {
if (checkPermissions && !(await Permission.storage.isGranted)) {
final status = await Permission.storage.request();
if (status != PermissionStatus.granted) {
@@ -91,4 +92,10 @@ class SaveFile {
return _saveToDir(filePath, file, checkPermissions: false);
}
+
+ static Future downloadAndSaveTmp(String url) async {
+ final dir = await getTemporaryDirectory();
+ String fileName = Uri.decodeComponent(url.split('/').last);
+ return downloadAndSaveExternal(url, "${dir.path}/$fileName");
+ }
}
diff --git a/pubspec.yaml b/pubspec.yaml
index d336a0b..e6df729 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,6 +1,6 @@
name: reactor
description: JoyReactor client.
-version: 0.7.7
+version: 0.7.8
environment:
sdk: '>=2.14.0 <3.0.0'