ADD: Allow image for importing wallet

This commit is contained in:
Marcos Rodriguez Vélez 2020-11-10 13:42:15 -05:00 committed by GitHub
parent 2fe564b82f
commit f8668f4045
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,6 +5,7 @@ import Share from 'react-native-share';
import loc from '../loc';
import { getSystemName } from 'react-native-device-info';
import DocumentPicker from 'react-native-document-picker';
const LocalQRCode = require('@remobile/react-native-qrcode-local-image');
const isDesktop = getSystemName() === 'Mac OS X';
@ -83,7 +84,14 @@ const showFilePickerAndReadFile = async function () {
const res = await DocumentPicker.pick({
type:
Platform.OS === 'ios'
? ['io.bluewallet.psbt', 'io.bluewallet.psbt.txn', 'io.bluewallet.backup', DocumentPicker.types.plainText, 'public.json']
? [
'io.bluewallet.psbt',
'io.bluewallet.psbt.txn',
'io.bluewallet.backup',
DocumentPicker.types.plainText,
'public.json',
DocumentPicker.types.images,
]
: [DocumentPicker.types.allFiles],
});
@ -94,11 +102,24 @@ const showFilePickerAndReadFile = async function () {
if (res.uri.toLowerCase().endsWith('.psbt')) {
// this is either binary file from ElectrumDesktop OR string file with base64 string in there
file = await _readPsbtFileIntoBase64(uri);
return { data: file, uri: decodeURI(res.uri) };
} else {
file = await RNFS.readFile(uri);
if (res.type === DocumentPicker.types.images || res.type.startsWith('image/')) {
return new Promise(resolve => {
const uri = Platform.OS === 'ios' ? res.uri.toString().replace('file://', '') : res.path.toString();
LocalQRCode.decode(decodeURI(uri), (error, result) => {
if (!error) {
resolve({ data: result, uri: decodeURI(res.uri) });
} else {
resolve({ data: false, uri: false });
}
});
});
} else {
file = await RNFS.readFile(uri);
return { data: file, uri: decodeURI(res.uri) };
}
}
return { data: file, uri: decodeURI(res.uri) };
} catch (err) {
return { data: false, uri: false };
}