From f223616ee1cd4dab0a3b64dc383ace1d6e9a440f Mon Sep 17 00:00:00 2001 From: Sofiya Tepikin Date: Thu, 23 Jun 2022 21:40:15 +0200 Subject: [PATCH] Fork restart functionality for different platforms --- .../settings/password/show-backup-reminder.js | 42 ++++++++++--------- db/index.js | 11 ++--- db/restart-app/index.android.js | 5 +++ db/restart-app/index.ios.js | 5 +++ i18n/en/settings.js | 27 +++++++++--- 5 files changed, 57 insertions(+), 33 deletions(-) create mode 100644 db/restart-app/index.android.js create mode 100644 db/restart-app/index.ios.js diff --git a/components/settings/password/show-backup-reminder.js b/components/settings/password/show-backup-reminder.js index bf95646..28d6b59 100644 --- a/components/settings/password/show-backup-reminder.js +++ b/components/settings/password/show-backup-reminder.js @@ -1,28 +1,32 @@ -import { Alert } from 'react-native' +import { Alert, Platform } from 'react-native' import { shared } from '../../../i18n/en/labels' import labels from '../../../i18n/en/settings' export default function showBackUpReminder(okHandler, cancelHandler, isDelete) { - let title, message - if (isDelete) { - title = labels.passwordSettings.deleteBackupReminderTitle - message = labels.passwordSettings.deleteBackupReminder - } else { - title = labels.passwordSettings.backupReminderTitle - message = labels.passwordSettings.backupReminder - } + const { title, message } = isDelete + ? labels.passwordSettings.deleteBackupReminder + : labels.passwordSettings.backupReminder + + const { backupReminderAppendix } = labels.passwordSettings + const appendix = + Platform.OS === 'ios' + ? backupReminderAppendix.ios + : backupReminderAppendix.android Alert.alert( title, - message, - [{ - text: shared.cancel, - onPress: cancelHandler, - style: 'cancel' - }, { - text: shared.ok, - onPress: okHandler - }], + message + appendix, + [ + { + text: shared.cancel, + onPress: cancelHandler, + style: 'cancel', + }, + { + text: shared.ok, + onPress: okHandler, + }, + ], { onDismiss: cancelHandler } ) -} \ No newline at end of file +} diff --git a/db/index.js b/db/index.js index 8be5198..2212823 100644 --- a/db/index.js +++ b/db/index.js @@ -2,10 +2,8 @@ import Realm from 'realm' import { LocalDate, ChronoUnit } from 'js-joda' import nodejs from 'nodejs-mobile-react-native' import fs from 'react-native-fs' -// Current version of react-native-restart doesn't work with our ios setup -// therefore react-native-exit-app-v2 is used to close the app after setting pwd -// import restart from 'react-native-restart' -import RNExitApp from 'react-native-exit-app-v2' +import { restartApp } from './restart-app' + import schemas from './schemas' import cycleModule from '../lib/cycle' import maybeSetNewCycleStart from '../lib/set-new-cycle-start' @@ -216,10 +214,7 @@ export async function changeEncryptionAndRestartApp(hash) { db.close() await fs.unlink(defaultPath) await fs.moveFile(copyPath, defaultPath) - // Current version of react-native-restart doesn't work with our ios setup - // therefore react-native-exit-app-v2 is used to close the app after setting pwd - // restart.Restart() - RNExitApp.exitApp() + restartApp() } export function isDbEmpty() { diff --git a/db/restart-app/index.android.js b/db/restart-app/index.android.js new file mode 100644 index 0000000..3a84dc2 --- /dev/null +++ b/db/restart-app/index.android.js @@ -0,0 +1,5 @@ +// Current version of react-native-restart doesn't work with our ios setup +// therefore we have a fork and use different libraries on the platforms +import restart from 'react-native-restart' + +export const restartApp = restart.Restart diff --git a/db/restart-app/index.ios.js b/db/restart-app/index.ios.js new file mode 100644 index 0000000..2d15425 --- /dev/null +++ b/db/restart-app/index.ios.js @@ -0,0 +1,5 @@ +// Current version of react-native-restart doesn't work with our ios setup +// therefore we have a fork and use different libraries on the platforms +import RNExitApp from 'react-native-exit-app-v2' + +export const restartApp = RNExitApp.exitApp diff --git a/i18n/en/settings.js b/i18n/en/settings.js index 41437fb..bb77e13 100644 --- a/i18n/en/settings.js +++ b/i18n/en/settings.js @@ -112,12 +112,27 @@ export default { enterNew: 'Please enter a new password', confirmPassword: 'Please confirm your password', passwordsDontMatch: "Password and confirmation don't match", - backupReminderTitle: 'Read this before making changes to your password', - backupReminder: - 'Just to be safe, please backup your data using the export function before making changes to your password.\n\nLonger passwords are better! Consider using a passphrase.\n\nPlease also make sure you do not lose your password. There is no way to recover your data if you do.\n\nMaking any changes to your password setting will keep your data as it was before. After the password is updated the app will automatically close. At the new app launch please use the new password.', - deleteBackupReminderTitle: 'Read this before deleting your password', - deleteBackupReminder: - 'Deleting your password means your data will no longer be encrypted.\n\nJust to be safe, please backup your data using the export function before deleting your password.\n\nMaking any changes to your password setting will keep your data as it was before and restart the app. . After the password is updated the app will automatically close. At the new app launch you will not be prompted to enter the password.', + backupReminder: { + title: 'Read this before making changes to your password', + message: ` +Just to be safe, please backup your data using the export function before making any changes to your password.\n +Longer passwords are better! Consider using a passphrase.\n +Please also make sure you do not lose your password. There is no way to recover your data if you do.\n +Making any changes to your password setting will keep your data as it was before.\n`, + }, + deleteBackupReminder: { + title: 'Read this before deleting your password', + message: ` +Deleting your password means your data will no longer be encrypted.\n +Just to be safe, please backup your data using the export function before deleting your password.\n +Making any changes to your password setting will keep your data as it was before and restart the app.\n + `, + }, + backupReminderAppendix: { + android: + 'After the password is updated the app will automatically restart.', + ios: 'After the password is updated the app will automatically close. Please reopen it manually.', + }, }, aboutSection: { title: 'About',