diff options
Diffstat (limited to 'app/src/main/java')
-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(); } } } |