From 6b60098ff34fc2a6476581f5adf1a8b0e1b13754 Mon Sep 17 00:00:00 2001 From: Roland Osborne Date: Sat, 12 Aug 2023 22:56:13 -0700 Subject: [PATCH] download to external android path --- .../binaryAsset/useBinaryAsset.hook.js | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/app/mobile/src/session/conversation/topicItem/binaryAsset/useBinaryAsset.hook.js b/app/mobile/src/session/conversation/topicItem/binaryAsset/useBinaryAsset.hook.js index 61212247..fbb5d944 100644 --- a/app/mobile/src/session/conversation/topicItem/binaryAsset/useBinaryAsset.hook.js +++ b/app/mobile/src/session/conversation/topicItem/binaryAsset/useBinaryAsset.hook.js @@ -1,10 +1,10 @@ import { useState, useRef, useEffect, useContext } from 'react'; import { ConversationContext } from 'context/ConversationContext'; import { Image } from 'react-native'; -import { useWindowDimensions } from 'react-native'; -import { Platform } from 'react-native'; +import { useWindowDimensions, Platform } from 'react-native'; import RNFetchBlob from "rn-fetch-blob"; import Share from 'react-native-share'; +import RNFS from 'react-native-fs'; export function useBinaryAsset() { @@ -45,20 +45,25 @@ export function useBinaryAsset() { src = blob.path(); } - const path = `${RNFetchBlob.fs.dirs.DocumentDir}` - const dst = `${path}/${label}.${extension.toLowerCase()}` - if (RNFetchBlob.fs.exists(dst)) { + if (Platform.OS === 'iOS') { + const path = `${RNFetchBlob.fs.dirs.DocumentDir}` + const dst = `${path}/${label}.${extension.toLowerCase()}` + if (RNFetchBlob.fs.exists(dst)) { + RNFetchBlob.fs.unlink(dst); + } + await RNFetchBlob.fs.mv(src, dst); + try { + await Share.open({ url: dst }) + } + catch (err) { + console.log(err); + } RNFetchBlob.fs.unlink(dst); } - await RNFetchBlob.fs.mv(src, dst); - try { - await Share.open({ url: dst, message: `${label}.${extension}`, subject: `${label}.${extension}` }) + else { + const copy = RNFS.ExternalDirectoryPath + "/" label + "." + extension; + RNFS.copyFile(src, copy); } - catch (err) { - console.log(err); - } - RNFetchBlob.fs.unlink(dst); - updateState({ downloading: false }); } catch (err) {