From 6665c0b2e98c6599d8c66854e97ceb08958dab56 Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Tue, 25 Aug 2015 21:02:11 -0400 Subject: Password editing: action bar edit button replaces decrypt view with encrypt view --- .../java/com/zeapo/pwdstore/crypto/PgpHandler.java | 42 ++++++++++++++++++++- app/src/main/res/drawable-hdpi/ic_action_edit.png | Bin 0 -> 214 bytes app/src/main/res/drawable-mdpi/ic_action_edit.png | Bin 0 -> 165 bytes app/src/main/res/drawable-xhdpi/ic_action_edit.png | Bin 0 -> 241 bytes .../main/res/drawable-xxhdpi/ic_action_edit.png | Bin 0 -> 304 bytes app/src/main/res/menu/pgp_handler.xml | 5 +++ 6 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/drawable-hdpi/ic_action_edit.png create mode 100644 app/src/main/res/drawable-mdpi/ic_action_edit.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_action_edit.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_edit.png 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(); diff --git a/app/src/main/res/drawable-hdpi/ic_action_edit.png b/app/src/main/res/drawable-hdpi/ic_action_edit.png new file mode 100644 index 00000000..3ecfd46f Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_edit.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_action_edit.png b/app/src/main/res/drawable-mdpi/ic_action_edit.png new file mode 100644 index 00000000..efad93e5 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_edit.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_action_edit.png b/app/src/main/res/drawable-xhdpi/ic_action_edit.png new file mode 100644 index 00000000..559aac98 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_edit.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_edit.png b/app/src/main/res/drawable-xxhdpi/ic_action_edit.png new file mode 100644 index 00000000..29046d95 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_edit.png differ diff --git a/app/src/main/res/menu/pgp_handler.xml b/app/src/main/res/menu/pgp_handler.xml index 56298a33..233a0940 100644 --- a/app/src/main/res/menu/pgp_handler.xml +++ b/app/src/main/res/menu/pgp_handler.xml @@ -7,4 +7,9 @@ pwstore:showAsAction="ifRoom" android:id="@+id/copy_password" /> + -- cgit v1.2.3