From 207b5504e77d14989cf9a6aa89a398a371026980 Mon Sep 17 00:00:00 2001 From: Julia Friesel Date: Tue, 30 Oct 2018 09:14:46 +0100 Subject: [PATCH] Only throw unexpected errors from openDb --- components/password-prompt.js | 11 ++++------- .../settings/password/check-current-password.js | 6 ++---- db/index.js | 13 +++++++++++-- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/components/password-prompt.js b/components/password-prompt.js index f9e63ee..c2a246e 100644 --- a/components/password-prompt.js +++ b/components/password-prompt.js @@ -24,22 +24,19 @@ export default class PasswordPrompt extends Component { } async tryToOpenDb() { - try { - await openDb({ persistConnection: true }) - } catch (err) { + const connected = await openDb({ persistConnection: true }) + if (!connected) { this.setState({ showPasswordPrompt: true }) await saveEncryptionFlag(true) return } - await saveEncryptionFlag(false) this.props.showApp() } passHashToDb = async hash => { - try { - await openDb({ hash, persistConnection: true }) - } catch (err) { + const connected = await openDb({ hash, persistConnection: true }) + if (!connected) { Alert.alert( shared.incorrectPassword, shared.incorrectPasswordMessage, diff --git a/components/settings/password/check-current-password.js b/components/settings/password/check-current-password.js index b177de4..0a27487 100644 --- a/components/settings/password/check-current-password.js +++ b/components/settings/password/check-current-password.js @@ -3,10 +3,8 @@ import { openDb } from '../../../db' import { shared } from '../../labels' export default async function checkPassword({hash, onCancel, onTryAgain }) { - try { - await openDb({ hash, persistConnection: false }) - return true - } catch (err) { + const connected = await openDb({ hash, persistConnection: false }) + if (!connected) { Alert.alert( shared.incorrectPassword, shared.incorrectPasswordMessage, diff --git a/db/index.js b/db/index.js index fe8c269..15523f6 100644 --- a/db/index.js +++ b/db/index.js @@ -29,16 +29,25 @@ export async function openDb ({ hash, persistConnection }) { // open the Realm with the latest schema realmConfig.schema = schemas[schemas.length - 1] - const connection = await Realm.open(Object.assign( + let connection + try { + connection = await Realm.open(Object.assign( realmConfig, schemas[schemas.length - 1] )) + } catch(err) { + if (!err.toString().includes('decrypt')) throw err + return false + } - if (persistConnection) db = connection + if (persistConnection) { + db = connection const cycle = cycleModule() isMensesStart = cycle.isMensesStart getMensesDaysRightAfter = cycle.getMensesDaysRightAfter } + return true +} export function getBleedingDaysSortedByDate() { return db.objects('CycleDay').filtered('bleeding != null').sorted('date', true)