diff options
author | Matthew Wong <wongma7@outlook.com> | 2015-08-25 21:02:11 -0400 |
---|---|---|
committer | Matthew Wong <wongma7@outlook.com> | 2015-08-25 21:02:11 -0400 |
commit | 6665c0b2e98c6599d8c66854e97ceb08958dab56 (patch) | |
tree | 2ea969ddcfa420bd33d86d208f4fe70218e7b172 | |
parent | df4a27eeaccc10942b205ac4bbfc630315b49850 (diff) |
Password editing: action bar edit button replaces decrypt view with encrypt view
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java | 42 | ||||
-rw-r--r-- | app/src/main/res/drawable-hdpi/ic_action_edit.png | bin | 0 -> 214 bytes | |||
-rw-r--r-- | app/src/main/res/drawable-mdpi/ic_action_edit.png | bin | 0 -> 165 bytes | |||
-rw-r--r-- | app/src/main/res/drawable-xhdpi/ic_action_edit.png | bin | 0 -> 241 bytes | |||
-rw-r--r-- | app/src/main/res/drawable-xxhdpi/ic_action_edit.png | bin | 0 -> 304 bytes | |||
-rw-r--r-- | app/src/main/res/menu/pgp_handler.xml | 5 |
6 files changed, 46 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(); diff --git a/app/src/main/res/drawable-hdpi/ic_action_edit.png b/app/src/main/res/drawable-hdpi/ic_action_edit.png Binary files differnew file mode 100644 index 00000000..3ecfd46f --- /dev/null +++ b/app/src/main/res/drawable-hdpi/ic_action_edit.png diff --git a/app/src/main/res/drawable-mdpi/ic_action_edit.png b/app/src/main/res/drawable-mdpi/ic_action_edit.png Binary files differnew file mode 100644 index 00000000..efad93e5 --- /dev/null +++ b/app/src/main/res/drawable-mdpi/ic_action_edit.png diff --git a/app/src/main/res/drawable-xhdpi/ic_action_edit.png b/app/src/main/res/drawable-xhdpi/ic_action_edit.png Binary files differnew file mode 100644 index 00000000..559aac98 --- /dev/null +++ b/app/src/main/res/drawable-xhdpi/ic_action_edit.png diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_edit.png b/app/src/main/res/drawable-xxhdpi/ic_action_edit.png Binary files differnew file mode 100644 index 00000000..29046d95 --- /dev/null +++ b/app/src/main/res/drawable-xxhdpi/ic_action_edit.png 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" /> + <item android:title="Edit password" + android:icon="@drawable/ic_action_edit" + pwstore:showAsAction="ifRoom" + android:id="@+id/edit_password" + /> </menu> |