diff --git a/app/src/main/java/me/impy/aegis/CustomAuthenticatedSlide.java b/app/src/main/java/me/impy/aegis/CustomAuthenticatedSlide.java index 476b5eee..72c2f2db 100644 --- a/app/src/main/java/me/impy/aegis/CustomAuthenticatedSlide.java +++ b/app/src/main/java/me/impy/aegis/CustomAuthenticatedSlide.java @@ -86,7 +86,7 @@ public class CustomAuthenticatedSlide extends Fragment implements FingerprintUiH if (_storeHandle == null) { _storeHandle = new KeyStoreHandle(); } - // TODO: consider regenerating the key if it exists + // TODO: consider regenerating the key here if it already exists if (!_storeHandle.keyExists()) { key = _storeHandle.generateKey(true); } else { diff --git a/app/src/main/java/me/impy/aegis/KeyProfileAdapter.java b/app/src/main/java/me/impy/aegis/KeyProfileAdapter.java index ee8a3dbb..72628de1 100644 --- a/app/src/main/java/me/impy/aegis/KeyProfileAdapter.java +++ b/app/src/main/java/me/impy/aegis/KeyProfileAdapter.java @@ -18,7 +18,6 @@ import com.amulyakhare.textdrawable.util.ColorGenerator; import java.util.ArrayList; import java.util.Collections; -import java.util.Comparator; import java.util.List; import me.impy.aegis.helpers.ItemTouchHelperAdapter; diff --git a/app/src/main/java/me/impy/aegis/MainActivity.java b/app/src/main/java/me/impy/aegis/MainActivity.java index e6a560b2..40f5be38 100644 --- a/app/src/main/java/me/impy/aegis/MainActivity.java +++ b/app/src/main/java/me/impy/aegis/MainActivity.java @@ -81,7 +81,8 @@ public class MainActivity extends AppCompatActivity { Intent intro = new Intent(this, IntroActivity.class); startActivityForResult(intro, CODE_DO_INTRO); } catch (Exception e) { - // TODO: feedback + e.printStackTrace(); + Toast.makeText(this, "An error occurred while trying to deserialize the database", Toast.LENGTH_LONG).show(); throw new UndeclaredThrowableException(e); } } @@ -213,7 +214,7 @@ public class MainActivity extends AppCompatActivity { _db.addKey(entry); } catch (Exception e) { e.printStackTrace(); - // TODO: feedback + Toast.makeText(this, "An error occurred while trying to add an entry", Toast.LENGTH_SHORT).show(); return; } @@ -235,8 +236,10 @@ public class MainActivity extends AppCompatActivity { _db.setMasterKey(key); } } catch (Exception e) { - // TODO: feedback - throw new UndeclaredThrowableException(e); + e.printStackTrace(); + Toast.makeText(this, "An error occurred while trying to load/decrypt the database", Toast.LENGTH_LONG).show(); + recreate(); + return; } loadKeyProfiles(); @@ -247,8 +250,10 @@ public class MainActivity extends AppCompatActivity { try { _db.setMasterKey(key); } catch (Exception e) { - // TODO: feedback - throw new UndeclaredThrowableException(e); + e.printStackTrace(); + Toast.makeText(this, "An error occurred while trying to decrypt the database", Toast.LENGTH_LONG).show(); + recreate(); + return; } loadKeyProfiles(); @@ -315,14 +320,13 @@ public class MainActivity extends AppCompatActivity { _db.removeKey(profile.getEntry()); } catch (Exception e) { e.printStackTrace(); - //TODO: feedback + Toast.makeText(this, "An error occurred while trying to delete an entry", Toast.LENGTH_SHORT).show(); return; } _keyProfiles.remove(_clickedItemPosition); _keyProfileAdapter.notifyItemRemoved(_clickedItemPosition); }) - .setNegativeButton(android.R.string.no, (dialog, which) -> { - }) + .setNegativeButton(android.R.string.no, null) .show(); } @@ -420,8 +424,8 @@ public class MainActivity extends AppCompatActivity { try { _db.save(); } catch (Exception e) { - //TODO: feedback - throw new UndeclaredThrowableException(e); + e.printStackTrace(); + Toast.makeText(this, "An error occurred while trying to save the database", Toast.LENGTH_LONG).show(); } } @@ -432,14 +436,16 @@ public class MainActivity extends AppCompatActivity { for (DatabaseEntry entry : _db.getKeys()) { _keyProfiles.add(new KeyProfile(entry)); } - _keyProfileAdapter.notifyDataSetChanged(); } catch (Exception e) { e.printStackTrace(); + Toast.makeText(this, "An error occurred while trying to load database entries", Toast.LENGTH_SHORT).show(); + return; } Collections.sort(_keyProfiles, (p1, p2) -> { return p1.getEntry().getOrder() >= p2.getEntry().getOrder() ? 1 : -1; }); + _keyProfileAdapter.notifyDataSetChanged(); } private void updateLockIcon() { diff --git a/app/src/main/java/me/impy/aegis/db/Database.java b/app/src/main/java/me/impy/aegis/db/Database.java index a54a4d74..207c3d85 100644 --- a/app/src/main/java/me/impy/aegis/db/Database.java +++ b/app/src/main/java/me/impy/aegis/db/Database.java @@ -40,16 +40,16 @@ public class Database { } } - public void addKey(DatabaseEntry entry) throws Exception { + public void addKey(DatabaseEntry entry) { entry.setID(_entries.size() + 1); _entries.add(entry); } - public void removeKey(DatabaseEntry entry) throws Exception { + public void removeKey(DatabaseEntry entry) { _entries.remove(entry); } - public List getKeys() throws Exception { + public List getKeys() { return _entries; } }