From 1b09c7bb6912c7471f21cc5ac2fdf52b5ba95b09 Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Thu, 15 Nov 2018 23:34:46 +0100 Subject: [PATCH] Fix mixup of EnableEncryptionListener and SetPasswordListener logic I somehow managed to mix the logic of these two up --- .../me/impy/aegis/ui/PreferencesFragment.java | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/me/impy/aegis/ui/PreferencesFragment.java b/app/src/main/java/me/impy/aegis/ui/PreferencesFragment.java index 9a942197..1141cc5d 100644 --- a/app/src/main/java/me/impy/aegis/ui/PreferencesFragment.java +++ b/app/src/main/java/me/impy/aegis/ui/PreferencesFragment.java @@ -445,18 +445,26 @@ public class PreferencesFragment extends PreferenceFragmentCompat { private class SetPasswordListener implements Dialogs.SlotListener { @Override public void onSlotResult(Slot slot, Cipher cipher) { - DatabaseFileCredentials creds = new DatabaseFileCredentials(); + DatabaseFileCredentials creds = _db.getCredentials(); + SlotList slots = creds.getSlots(); try { + // encrypt the master key for this slot slot.setKey(creds.getKey(), cipher); - creds.getSlots().add(slot); - _db.enableEncryption(creds); - } catch (DatabaseManagerException | SlotException e) { + + // remove the old master password slot + PasswordSlot oldSlot = creds.getSlots().find(PasswordSlot.class); + slots.remove(oldSlot); + + // add the new master password slot + slots.add(slot); + } catch (SlotException e) { onException(e); return; } - updateEncryptionPreferences(); + _db.setCredentials(creds); + saveDatabase(); } @Override @@ -495,26 +503,18 @@ public class PreferencesFragment extends PreferenceFragmentCompat { private class EnableEncryptionListener implements Dialogs.SlotListener { @Override public void onSlotResult(Slot slot, Cipher cipher) { - DatabaseFileCredentials creds = _db.getCredentials(); - SlotList slots = creds.getSlots(); + DatabaseFileCredentials creds = new DatabaseFileCredentials(); try { - // encrypt the master key for this slot slot.setKey(creds.getKey(), cipher); - - // remove the old master password slot - PasswordSlot oldSlot = creds.getSlots().find(PasswordSlot.class); - slots.remove(oldSlot); - - // add the new master password slot - slots.add(slot); - } catch (SlotException e) { + creds.getSlots().add(slot); + _db.enableEncryption(creds); + } catch (DatabaseManagerException | SlotException e) { onException(e); return; } - _db.setCredentials(creds); - saveDatabase(); + updateEncryptionPreferences(); } @Override