Password editing: action bar edit button replaces decrypt view with encrypt view

This commit is contained in:
Matthew Wong 2015-08-25 21:02:11 -04:00
parent df4a27eeac
commit 6665c0b2e9
6 changed files with 46 additions and 1 deletions

View file

@ -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();

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

View file

@ -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>