This commit is contained in:
Marcos Rodriguez 2020-01-07 01:53:32 -05:00
parent 2827858d04
commit a35bc42b9a
4 changed files with 74 additions and 41 deletions

4
package-lock.json generated
View file

@ -10996,10 +10996,6 @@
"resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-4.0.1.tgz",
"integrity": "sha512-a0Q/gwy1oQhu17CeMq9xMZ3Sl9foaj8hFwVuy9jieqkkoQwkHnPDI+R7bEW0MNMgUCPPrzzXvka+FLGOWVqacg=="
},
"react-native-directory-picker": {
"version": "git+https://github.com/BlueWallet/react-native-directory-picker.git#63307e646f72444ab83b619e579c55ee38cd162a",
"from": "git+https://github.com/BlueWallet/react-native-directory-picker.git#63307e646f72444ab83b619e579c55ee38cd162a"
},
"react-native-document-picker": {
"version": "git+https://github.com/BlueWallet/react-native-document-picker.git#9ce83792db340d01b1361d24b19613658abef4aa",
"from": "git+https://github.com/BlueWallet/react-native-document-picker.git#9ce83792db340d01b1361d24b19613658abef4aa"

View file

@ -93,7 +93,6 @@
"react-native-camera": "3.4.0",
"react-native-default-preference": "1.4.1",
"react-native-device-info": "4.0.1",
"react-native-directory-picker": "git+https://github.com/BlueWallet/react-native-directory-picker.git#63307e646f72444ab83b619e579c55ee38cd162a",
"react-native-document-picker": "git+https://github.com/BlueWallet/react-native-document-picker.git#9ce83792db340d01b1361d24b19613658abef4aa",
"react-native-elements": "0.19.0",
"react-native-flexi-radio-button": "0.2.2",

View file

@ -13,6 +13,7 @@ import {
Text,
View,
Platform,
Alert,
} from 'react-native';
import { BlueNavigationStyle, SafeBlueArea, BlueCard, BlueText } from '../../BlueComponents';
import PropTypes from 'prop-types';
@ -21,7 +22,6 @@ import { BitcoinUnit } from '../../models/bitcoinUnits';
import { Icon } from 'react-native-elements';
import Share from 'react-native-share';
import RNFS from 'react-native-fs';
import DirectoryPickerManager from 'react-native-directory-picker';
/** @type {AppStorage} */
const BlueApp = require('../../BlueApp');
const loc = require('../../loc');
@ -73,21 +73,38 @@ export default class SendCreate extends Component {
RNFS.unlink(filePath);
});
} else if (Platform.OS === 'android') {
DirectoryPickerManager.showDirectoryPicker(null, async response => {
if (response.didCancel) {
console.log('User cancelled directory picker');
} else if (response.error) {
console.log('DirectoryPickerManager Error: ', response.error);
} else {
try {
await RNFS.writeFile(response.decodedUri + `/${fileName}`, this.state.tx, 'ascii');
alert('Successfully exported.');
} catch (e) {
console.log(e);
alert(e);
}
}
});
Alert.alert(
'Export',
'Where would you like to export this transaction?',
[
{
text: 'External Storage',
onPress: async () => {
try {
await RNFS.writeFile('file://' + RNFS.ExternalStorageDirectoryPath + `/${fileName}`, this.state.tx, 'ascii');
alert('Successfully exported.');
} catch (e) {
console.log(e);
alert(e);
}
},
},
{
text: 'Documents Folder',
onPress: async () => {
try {
await RNFS.writeFile('file://' + RNFS.DocumentDirectoryPath + `/${fileName}`, this.state.tx, 'ascii');
alert('Successfully exported.');
} catch (e) {
console.log(e);
alert(e);
}
},
},
{ text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
],
{ cancelable: true },
);
}
};

View file

@ -7,6 +7,7 @@ import {
View,
Dimensions,
Image,
Alert,
TextInput,
Clipboard,
Linking,
@ -29,7 +30,6 @@ import ReactNativeHapticFeedback from 'react-native-haptic-feedback';
import { RNCamera } from 'react-native-camera';
import RNFS from 'react-native-fs';
import DocumentPicker from 'react-native-document-picker';
import DirectoryPickerManager from 'react-native-directory-picker';
let loc = require('../../loc');
let EV = require('../../events');
let BlueElectrum = require('../../BlueElectrum');
@ -241,25 +241,46 @@ export default class PsbtWithHardwareWallet extends Component {
RNFS.unlink(filePath);
});
} else if (Platform.OS === 'android') {
DirectoryPickerManager.showDirectoryPicker(null, async response => {
if (response.didCancel) {
console.log('User cancelled directory picker');
} else if (response.error) {
console.log('DirectoryPickerManager Error: ', response.error);
} else {
try {
await RNFS.writeFile(
response.decodedUri + `/${fileName}`,
this.state.isFirstPSBTAlreadyBase64 ? this.state.psbt : this.state.psbt.toBase64(),
'ascii',
);
alert('Successfully exported.');
} catch (e) {
console.log(e);
alert(e);
}
}
});
Alert.alert(
'Export',
'Where would you like to export this transaction?',
[
{
text: 'External Storage',
onPress: async () => {
try {
await RNFS.writeFile(
'file://' + RNFS.ExternalStorageDirectoryPath + `/${fileName}`,
this.state.isFirstPSBTAlreadyBase64 ? this.state.psbt : this.state.psbt.toBase64(),
'ascii',
);
alert('Successfully exported.');
} catch (e) {
console.log(e);
alert(e);
}
},
},
{
text: 'Documents Folder',
onPress: async () => {
try {
await RNFS.writeFile(
'file://' + RNFS.DocumentDirectoryPath + `/${fileName}`,
this.state.isFirstPSBTAlreadyBase64 ? this.state.psbt : this.state.psbt.toBase64(),
'ascii',
);
alert('Successfully exported.');
} catch (e) {
console.log(e);
alert(e);
}
},
},
{ text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
],
{ cancelable: true },
);
}
};