Skip to content
This repository has been archived by the owner on Jun 7, 2023. It is now read-only.

Commit

Permalink
Mobile: Handle error if permissions are denied on SeedVault import (#719
Browse files Browse the repository at this point in the history
)

* Mobile: Handle error if permissions are denied on SeedVault import

* Update translation.json
  • Loading branch information
rajivshah3 authored Dec 10, 2018
1 parent 8a4f1e1 commit a9aa824
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 38 deletions.
81 changes: 46 additions & 35 deletions src/mobile/src/ui/components/SeedVaultImportComponent.js
Original file line number Diff line number Diff line change
Expand Up @@ -124,42 +124,53 @@ export class SeedVaultImportComponent extends Component {
* @method importSeedVault
*/
importSeedVault() {
const { t } = this.props;
(isAndroid ? this.grantPermissions() : Promise.resolve()).then(() => {
DocumentPicker.show(
{
filetype: isAndroid
? ['application/octet-stream']
: ['public.data', 'public.item', 'dyn.ah62d4rv4ge8003dcta'],
},
(error, res) => {
if (error) {
return this.props.generateAlert(
'error',
t('global:somethingWentWrong'),
t('global:somethingWentWrongTryAgain'),
);
}
let path = res.uri;
if (path.startsWith('file://')) {
path = path.slice(7);
}
RNFetchBlob.fs
.readFile(path, 'ascii')
.then((data) => {
this.setState({ seedVault: data });
this.props.openPasswordValidationModal();
})
.catch(() =>
this.props.generateAlert(
const { t, generateAlert } = this.props;
(isAndroid ? this.grantPermissions() : Promise.resolve())
.then(() => {
DocumentPicker.show(
{
filetype: isAndroid
? ['application/octet-stream']
: ['public.data', 'public.item', 'dyn.ah62d4rv4ge8003dcta'],
},
(error, res) => {
if (error) {
return generateAlert(
'error',
t('seedVault:seedFileError'),
t('seedVault:seedFileErrorExplanation'),
),
);
},
);
});
t('global:somethingWentWrong'),
t('global:somethingWentWrongTryAgain'),
);
}
let path = res.uri;
if (path.startsWith('file://')) {
path = path.slice(7);
}
RNFetchBlob.fs
.readFile(path, 'ascii')
.then((data) => {
this.setState({ seedVault: data });
this.props.openPasswordValidationModal();
})
.catch(() =>
generateAlert(
'error',
t('seedVault:seedFileError'),
t('seedVault:seedFileErrorExplanation'),
),
);
},
);
})
.catch((err) => {
if (err.message === 'Read permissions not granted.') {
return generateAlert(
'error',
t('receive:missingPermission'),
t('receive:missingPermissionExplanation'),
);
}
throw err;
});
}

render() {
Expand Down
6 changes: 3 additions & 3 deletions src/shared/locales/en/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,9 @@
"shouldUpdate": "A new update is available",
"shouldUpdateExplanation": "A new update has been released. It is recommended that you update to the latest version.",
"forceUpdate": "Update the app to continue",
"forceUpdateExplanation": "A critical update has been released. Please update the app now."
"forceUpdateExplanation": "A critical update has been released. Please update the app now.",
"missingPermission": "File system permission required",
"missingPermissionExplanation": "Access to the file system is required in order to perform this function."
},
"addAdditionalSeed": {
"seedInvalidChars": "Seed contains invalid characters",
Expand Down Expand Up @@ -309,8 +311,6 @@
"generateNewAddress": "Generate address",
"noAddresses": "NO ADDRESSES",
"spent": "Spent",
"missingPermission": "File system permission required",
"missingPermissionExplanation": "Access to the file system is required in order to share QR codes.",
"tag": "Tag",
"generateAnAddress": "Generate address",
"generateAnAddressTitle": "Generate an address",
Expand Down

0 comments on commit a9aa824

Please sign in to comment.