diff --git a/app/src/main/java/com/zeapo/pwdstore/UserPreference.java b/app/src/main/java/com/zeapo/pwdstore/UserPreference.java
index ff6f5048..dc535990 100644
--- a/app/src/main/java/com/zeapo/pwdstore/UserPreference.java
+++ b/app/src/main/java/com/zeapo/pwdstore/UserPreference.java
@@ -82,6 +82,14 @@ public class UserPreference extends AppCompatActivity {
}
});
+ findPreference("ssh_keygen").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ callingActivity.makeSshKey();
+ return true;
+ }
+ });
+
findPreference("git_server_info").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
@@ -174,6 +182,9 @@ public class UserPreference extends AppCompatActivity {
case "get_ssh_key":
getSshKey();
break;
+ case "make_ssh_key":
+ makeSshKey();
+ break;
case "git_external":
selectExternalGitRepository();
break;
@@ -219,6 +230,14 @@ public class UserPreference extends AppCompatActivity {
startActivityForResult(intent, IMPORT_SSH_KEY);
}
+ /**
+ * Opens a key generator to generate a public/private key pair
+ */
+ public void makeSshKey() {
+ Intent intent = new Intent(getApplicationContext(), SshKeyGen.class);
+ startActivity(intent);
+ }
+
private void copySshKey(Uri uri) throws IOException {
InputStream sshKey = this.getContentResolver().openInputStream(uri);
byte[] privateKey = IOUtils.toByteArray(sshKey);
diff --git a/app/src/main/res/xml/preference.xml b/app/src/main/res/xml/preference.xml
index 1ddcde41..e8772616 100644
--- a/app/src/main/res/xml/preference.xml
+++ b/app/src/main/res/xml/preference.xml
@@ -7,6 +7,9 @@
+