aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
authorMatthew Wong <wongma7@outlook.com>2015-08-25 21:02:11 -0400
committerMatthew Wong <wongma7@outlook.com>2015-08-25 21:02:11 -0400
commit6665c0b2e98c6599d8c66854e97ceb08958dab56 (patch)
tree2ea969ddcfa420bd33d86d208f4fe70218e7b172 /app/src/main/java
parentdf4a27eeaccc10942b205ac4bbfc630315b49850 (diff)
Password editing: action bar edit button replaces decrypt view with encrypt view
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java42
1 files changed, 41 insertions, 1 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 b744c4a0..fa46fb3c 100644
--- a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java
+++ b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java
@@ -56,6 +56,7 @@ public class PgpHandler extends AppCompatActivity implements OpenPgpServiceConne
SharedPreferences settings;
private Activity activity;
ClipboardManager clipboard;
+ AsyncTask delayShowTask;
private boolean registered;
@@ -137,10 +138,46 @@ public class PgpHandler extends AppCompatActivity implements OpenPgpServiceConne
return true;
case R.id.copy_password:
copyToClipBoard();
+ break;
+ case R.id.edit_password:
+ editPassword();
+ if (delayShowTask != null) {
+ delayShowTask.cancel(true);
+ delayShowTask = null;
+ }
}
return super.onOptionsItemSelected(item);
}
+ public void editPassword() {
+
+ if (findViewById(R.id.crypto_container).getVisibility() != View.VISIBLE)
+ return;
+
+ CharSequence category = ((TextView) findViewById(R.id.crypto_password_category)).getText();
+ CharSequence file = ((TextView) findViewById(R.id.crypto_password_file)).getText();
+ CharSequence password = ((TextView) findViewById(R.id.crypto_password_show)).getText();
+ CharSequence extra = ((TextView) findViewById(R.id.crypto_extra_show)).getText();
+
+ setContentView(R.layout.encrypt_layout);
+ Typeface monoTypeface = Typeface.createFromAsset(getAssets(), "fonts/sourcecodepro.ttf");
+ ((EditText) findViewById(R.id.crypto_password_edit)).setTypeface(monoTypeface);
+ ((EditText) findViewById(R.id.crypto_extra_edit)).setTypeface(monoTypeface);
+
+ ((TextView) findViewById(R.id.crypto_password_category)).setText(category);
+ ((TextView) findViewById(R.id.crypto_password_file_edit)).setText(file);
+ ((EditText) findViewById(R.id.crypto_password_edit)).setText(password);
+ ((EditText) findViewById(R.id.crypto_extra_edit)).setText(extra);
+
+ // the original intent was to decrypt so FILE_PATH will have the file, not enclosing dir
+ // PgpCallback expects the dir when encrypting
+ String filePath = getIntent().getExtras().getString("FILE_PATH");
+ String directoryPath = filePath.substring(0, filePath.lastIndexOf(File.separator));
+ Intent intent = new Intent(this, PgpHandler.class);
+ intent.putExtra("FILE_PATH", directoryPath);
+ setIntent(intent);
+ }
+
public void copyToClipBoard() {
if (findViewById(R.id.crypto_password_show) == null)
@@ -248,6 +285,9 @@ public class PgpHandler extends AppCompatActivity implements OpenPgpServiceConne
if (showPassword) {
publishProgress(current);
}
+ if (isCancelled()) {
+ return false;
+ }
}
return true;
}
@@ -361,7 +401,7 @@ public class PgpHandler extends AppCompatActivity implements OpenPgpServiceConne
copyToClipBoard();
}
- new DelayShow().execute();
+ delayShowTask = new DelayShow().execute();
if (!showPassword) {
activity.setResult(RESULT_CANCELED);
activity.finish();