diff options
author | Matthew Wong <wongma7@outlook.com> | 2016-07-29 20:41:40 -0400 |
---|---|---|
committer | Matthew Wong <wongma7@outlook.com> | 2016-07-29 20:41:40 -0400 |
commit | 33cebc8a497f14e72c52b18545380dfbcd2e788a (patch) | |
tree | 3ae18d76754735384b9fb2e34a807b03f0098437 | |
parent | cd02d6fe9e6cdbfcfd429f26f16155465bc54ab3 (diff) |
Don't show the 'directory already exists' error if it's just a .git folder & show all exceptions to the user (e.g. invalid private key)
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java b/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java index a1ca9519..e608b5fc 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java @@ -475,7 +475,9 @@ public class GitActivity extends AppCompatActivity { if (!saveConfiguration()) return; - if (localDir.exists() && localDir.listFiles().length != 0) { + // Warn if non-empty folder unless it's a just-initialized store that has just a .git folder + if (localDir.exists() && localDir.listFiles().length != 0 + && !(localDir.listFiles().length == 1 && localDir.listFiles()[0].getName().equals(".git"))) { new AlertDialog.Builder(this). setTitle(R.string.dialog_delete_title). setMessage(getResources().getString(R.string.dialog_delete_msg) + " " + localDir.toString()). @@ -493,13 +495,16 @@ public class GitActivity extends AppCompatActivity { //This is what happens when jgit fails :( //TODO Handle the diffent cases of exceptions e.printStackTrace(); + new AlertDialog.Builder(GitActivity.this). + setMessage(e.getMessage()). + show(); } } catch (IOException e) { //TODO Handle the exception correctly if we are unable to delete the directory... e.printStackTrace(); - } catch (Exception e) { - //This is what happens when jgit fails :( - //TODO Handle the diffent cases of exceptions + new AlertDialog.Builder(GitActivity.this). + setMessage(e.getMessage()). + show(); } dialog.cancel(); @@ -516,6 +521,10 @@ public class GitActivity extends AppCompatActivity { show(); } else { try { + // Silently delete & replace the lone .git folder if it exists + if (localDir.listFiles().length == 1 && localDir.listFiles()[0].getName().equals(".git")) { + FileUtils.deleteDirectory(localDir); + } new CloneOperation(localDir, activity) .setCommand(hostname) .executeAfterAuthentication(connectionMode, settings.getString("git_remote_username", "git"), new File(getFilesDir() + "/.ssh_key")); @@ -523,6 +532,9 @@ public class GitActivity extends AppCompatActivity { //This is what happens when jgit fails :( //TODO Handle the diffent cases of exceptions e.printStackTrace(); + new AlertDialog.Builder(this). + setMessage(e.getMessage()). + show(); } } } |