aboutsummaryrefslogtreecommitdiff
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
parentdf4a27eeaccc10942b205ac4bbfc630315b49850 (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.java42
-rw-r--r--app/src/main/res/drawable-hdpi/ic_action_edit.pngbin0 -> 214 bytes
-rw-r--r--app/src/main/res/drawable-mdpi/ic_action_edit.pngbin0 -> 165 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/ic_action_edit.pngbin0 -> 241 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/ic_action_edit.pngbin0 -> 304 bytes
-rw-r--r--app/src/main/res/menu/pgp_handler.xml5
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
new file mode 100644
index 00000000..3ecfd46f
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/ic_action_edit.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/ic_action_edit.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_action_edit.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_action_edit.png
Binary files 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"
/>
+ <item android:title="Edit password"
+ android:icon="@drawable/ic_action_edit"
+ pwstore:showAsAction="ifRoom"
+ android:id="@+id/edit_password"
+ />
</menu>