diff --git a/src/com/keepassdroid/database/LoadDB.java b/src/com/keepassdroid/database/LoadDB.java index 5456c7606..29a292376 100644 --- a/src/com/keepassdroid/database/LoadDB.java +++ b/src/com/keepassdroid/database/LoadDB.java @@ -59,9 +59,7 @@ public class LoadDB extends RunnableOnFinish { try { mDb.LoadData(mCtx, mFileName, mPass, mKey); - if ( mRememberKeyfile ) { - saveFileData(mFileName, mKey); - } + saveFileData(mFileName, mKey); } catch (InvalidCipherTextException e) { finish(false, mCtx.getString(R.string.InvalidPassword)); @@ -84,6 +82,10 @@ public class LoadDB extends RunnableOnFinish { FileDbHelper db = new FileDbHelper(mCtx); db.open(); + if ( ! mRememberKeyfile ) { + key = ""; + } + db.createFile(fileName, key); db.close(); diff --git a/src/com/keepassdroid/fileselect/FileDbHelper.java b/src/com/keepassdroid/fileselect/FileDbHelper.java index 775f26f51..c95e57264 100644 --- a/src/com/keepassdroid/fileselect/FileDbHelper.java +++ b/src/com/keepassdroid/fileselect/FileDbHelper.java @@ -180,8 +180,11 @@ public class FileDbHelper { } - public void deleteAll() { - mDb.delete(FILE_TABLE, null, null); + public void deleteAllKeys() { + ContentValues vals = new ContentValues(); + vals.put(KEY_FILE_KEYFILE, ""); + + mDb.update(FILE_TABLE, vals, null, null); } public Cursor fetchAllFiles() { diff --git a/src/com/keepassdroid/settings/AppSettingsActivity.java b/src/com/keepassdroid/settings/AppSettingsActivity.java index cc72c7151..e97f05347 100644 --- a/src/com/keepassdroid/settings/AppSettingsActivity.java +++ b/src/com/keepassdroid/settings/AppSettingsActivity.java @@ -56,7 +56,7 @@ public class AppSettingsActivity extends PreferenceActivity { if ( ! value.booleanValue() ) { FileDbHelper helper = new FileDbHelper(AppSettingsActivity.this); helper.open(); - helper.deleteAll(); + helper.deleteAllKeys(); helper.close(); }