aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java86
-rw-r--r--app/src/main/res/xml/preference.xml5
2 files changed, 61 insertions, 30 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java
index 84c1642f..db07ca0e 100644
--- a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java
+++ b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java
@@ -46,6 +46,7 @@ public class PgpHandler extends Activity {
private OpenPgpServiceConnection mServiceConnection;
private String keyIDs = "";
+ private String accountName = "";
SharedPreferences settings;
public static final int REQUEST_CODE_SIGN = 9910;
@@ -80,7 +81,7 @@ public class PgpHandler extends Activity {
// some persistance
settings = PreferenceManager.getDefaultSharedPreferences(this);
String providerPackageName = settings.getString("openpgp_provider_list", "");
- String accountName = settings.getString("openpgp_account_name", "");
+ accountName = settings.getString("openpgp_account_name", "");
if (TextUtils.isEmpty(providerPackageName)) {
Toast.makeText(this, "No OpenPGP Provider selected!", Toast.LENGTH_LONG).show();
@@ -95,6 +96,7 @@ public class PgpHandler extends Activity {
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
+ Log.i("", accountName);
}
@@ -122,7 +124,7 @@ public class PgpHandler extends Activity {
public void handleClick(View view) {
switch (view.getId()) {
- case R.id.crypto_show_button :
+ case R.id.crypto_show_button:
decryptAndVerify(new Intent());
break;
case R.id.crypto_confirm_add:
@@ -180,7 +182,7 @@ public class PgpHandler extends Activity {
TextView extraText = (TextView) findViewById(R.id.crypto_extra_show);
if (extraText.getText().length() != 0)
- ((LinearLayout) findViewById(R.id.crypto_extra_show_layout )).setVisibility(View.VISIBLE);
+ ((LinearLayout) findViewById(R.id.crypto_extra_show_layout)).setVisibility(View.VISIBLE);
this.pb = (ProgressBar) findViewById(R.id.pbLoading);
this.pb.setMax(SHOW_TIME);
@@ -189,7 +191,8 @@ public class PgpHandler extends Activity {
@Override
protected Boolean doInBackground(Void... params) {
while (this.count < SHOW_TIME) {
- SystemClock.sleep(1000); this.count++;
+ SystemClock.sleep(1000);
+ this.count++;
publishProgress(this.count);
}
return true;
@@ -241,7 +244,7 @@ public class PgpHandler extends Activity {
((TextView) findViewById(R.id.crypto_password_show))
.setText(passContent[0]);
- String extraContent = os.toString("UTF-8").replaceFirst(".*\n","");
+ String extraContent = os.toString("UTF-8").replaceFirst(".*\n", "");
if (extraContent.length() != 0) {
((TextView) findViewById(R.id.crypto_extra_show))
.setText(extraContent);
@@ -278,7 +281,6 @@ public class PgpHandler extends Activity {
}
-
// verify
if (result.hasExtra(OpenPgpApi.RESULT_SIGNATURE)) {
OpenPgpSignatureResult sigResult
@@ -338,38 +340,62 @@ public class PgpHandler extends Activity {
public void encrypt(Intent data) {
+ accountName = settings.getString("openpgp_account_name", "");
+
+ if (accountName.isEmpty()) {
+ new AlertDialog.Builder(this)
+ .setMessage("Please set your OpenKeychain account (email) in the preferences")
+ .setTitle("Account name empty!")
+ .setPositiveButton("OK", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int id) {
+ try {
+ Intent intent = new Intent(getApplicationContext(), UserPreference.class);
+ startActivity(intent);
+ } catch (Exception e) {
+ System.out.println("Exception caught :(");
+ e.printStackTrace();
+ }
+ }
+ }).setNegativeButton("No thanks", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int id) {
+ // Do nothing...
+ }
+ }).show();
+ } else {
- data.setAction(OpenPgpApi.ACTION_ENCRYPT);
- // TODO add preference so that the user sets his account name
- data.putExtra(OpenPgpApi.EXTRA_USER_IDS, new String[] {"default"});
- data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true);
+ data.setAction(OpenPgpApi.ACTION_ENCRYPT);
+ data.putExtra(OpenPgpApi.EXTRA_USER_IDS, new String[]{accountName});
+ data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true);
- String name = ((EditText) findViewById(R.id.crypto_password_file_edit)).getText().toString();
- String pass = ((EditText) findViewById(R.id.crypto_password_edit)).getText().toString();
- String extra = ((EditText) findViewById(R.id.crypto_extra_edit)).getText().toString();
+ String name = ((EditText) findViewById(R.id.crypto_password_file_edit)).getText().toString();
+ String pass = ((EditText) findViewById(R.id.crypto_password_edit)).getText().toString();
+ String extra = ((EditText) findViewById(R.id.crypto_extra_edit)).getText().toString();
- if (name.isEmpty()) {
- showToast("Please provide a file name");
- return;
- }
+ if (name.isEmpty()) {
+ showToast("Please provide a file name");
+ return;
+ }
- if (pass.isEmpty()) {
- showToast("You cannot use an empty password or empty extra content");
- return;
- }
+ if (pass.isEmpty() || extra.isEmpty()) {
+ showToast("You cannot use an empty password or empty extra content");
+ return;
+ }
- ByteArrayInputStream is;
+ ByteArrayInputStream is;
- try {
- is = new ByteArrayInputStream((pass + "\n" + extra).getBytes("UTF-8"));
+ try {
+ is = new ByteArrayInputStream((pass + "\n" + extra).getBytes("UTF-8"));
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
- OpenPgpApi api = new OpenPgpApi(this, mServiceConnection.getService());
- api.executeApiAsync(data, is, os, new MyCallback(true, os, REQUEST_CODE_ENCRYPT));
+ OpenPgpApi api = new OpenPgpApi(this, mServiceConnection.getService());
+ api.executeApiAsync(data, is, os, new MyCallback(true, os, REQUEST_CODE_ENCRYPT));
- }catch (Exception e) {
- e.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
}
@@ -377,7 +403,7 @@ public class PgpHandler extends Activity {
private void deletePassword() {
new AlertDialog.Builder(this).
setMessage("Are you sure you want to delete the password \"" +
- getIntent().getExtras().getString("NAME") + "\"")
+ getIntent().getExtras().getString("NAME") + "\"")
.setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
diff --git a/app/src/main/res/xml/preference.xml b/app/src/main/res/xml/preference.xml
index 8686dff7..cc5dda74 100644
--- a/app/src/main/res/xml/preference.xml
+++ b/app/src/main/res/xml/preference.xml
@@ -5,5 +5,10 @@
<org.openintents.openpgp.util.OpenPgpListPreference
android:key="openpgp_provider_list"
android:title="Select OpenPGP Provider!" />
+
+ <EditTextPreference android:title="OpenPGP account"
+ android:hint="mail@somewhere.tld"
+ android:key="openpgp_account_name"/>
</PreferenceCategory>
+
</PreferenceScreen> \ No newline at end of file