diff options
author | zeapo <mohamed@zenadi.com> | 2014-11-04 22:23:47 +0100 |
---|---|---|
committer | zeapo <mohamed@zenadi.com> | 2014-11-04 22:23:47 +0100 |
commit | c6882ea39c3d0649b1a0928f97c5e37b60723588 (patch) | |
tree | cbff23d951b6e5ad626d5e74777d6f46f887649d /app/src/main/java/com | |
parent | 7e0a8c6ce892357092fe5fddb4c05ae28af3d573 (diff) |
added an error when unable to open/access ssh-key
Diffstat (limited to 'app/src/main/java/com')
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/UserPreference.java | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/UserPreference.java b/app/src/main/java/com/zeapo/pwdstore/UserPreference.java index f49d463b..ab3fc0e1 100644 --- a/app/src/main/java/com/zeapo/pwdstore/UserPreference.java +++ b/app/src/main/java/com/zeapo/pwdstore/UserPreference.java @@ -1,6 +1,8 @@ package com.zeapo.pwdstore; import android.app.Activity; +import android.app.AlertDialog; +import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; @@ -19,9 +21,12 @@ import com.zeapo.pwdstore.utils.PasswordRepository; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; +import org.eclipse.jgit.api.CloneCommand; import java.io.File; +import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.IOException; import java.io.InputStream; import java.net.URI; @@ -68,12 +73,23 @@ public class UserPreference extends ActionBarActivity implements Preference.OnPr return super.onOptionsItemSelected(item); } + /** + * Opens a file explorer to import the private key + */ public void getSshKey() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); startActivityForResult(intent, 1); } + + private void copySshKey(Uri uri) throws IOException { + InputStream sshKey = this.getContentResolver().openInputStream(uri); + byte[] privateKey = IOUtils.toByteArray(sshKey); + FileUtils.writeByteArrayToFile(new File(getFilesDir() + "/.ssh_key"), privateKey); + sshKey.close(); + } + @Override public boolean onPreferenceClick(Preference pref) { if (pref.getKey().equals("openpgp_key_id")) { @@ -92,16 +108,21 @@ public class UserPreference extends ActionBarActivity implements Preference.OnPr if (requestCode == 1) { // Uri sshFile = data.getData(); try { - InputStream sshKey = this.getContentResolver().openInputStream(data.getData()); - byte[] privateKey = IOUtils.toByteArray(sshKey); - FileUtils.writeByteArrayToFile(new File(getFilesDir() + "/.ssh_key"), privateKey); - sshKey.close(); - + copySshKey(data.getData()); Log.i("PREF", "Got key"); setResult(RESULT_OK); finish(); - } catch (Exception e) { - e.printStackTrace(); + } catch (IOException e) + { + new AlertDialog.Builder(this). + setTitle(this.getResources().getString(R.string.ssh_key_error_dialog_title)). + setMessage(this.getResources().getString(R.string.ssh_key_error_dialog_text) + e.getMessage()). + setPositiveButton(this.getResources().getString(R.string.dialog_ok), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + //pass + } + }).show(); } } } |