From 2ee2daa407637671ab6389b3e650df9fdc86e275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B8=D0=BC=20=D0=97=D0=B0=D0=BD=D0=B8=D0=B1?= =?UTF-8?q?=D0=B5=D0=BA=D0=BE=D0=B2?= Date: Tue, 22 Mar 2022 20:16:28 +0300 Subject: [PATCH] Fixed youtube player Added ability to share video (difs) --- android/app/src/main/AndroidManifest.xml | 4 ++++ lib/app/content/content.dart | 11 +++++++++++ lib/app/extensions/youtube/player.dart | 2 +- lib/core/common/save-file.dart | 9 ++++++++- pubspec.yaml | 2 +- 5 files changed, 25 insertions(+), 3 deletions(-) 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'