aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-10-08 17:39:53 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-10-08 17:39:53 +0200
commit2eb776594f378ac7a14ea716f0a7470d34230ec2 (patch)
tree45dc6552f45888fd75e43f573a6577fda33549e2 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java
parent158f22a799e6a51dff64aa54303bf4bb7b495b4e (diff)
downloadopen-keychain-2eb776594f378ac7a14ea716f0a7470d34230ec2.tar.gz
open-keychain-2eb776594f378ac7a14ea716f0a7470d34230ec2.tar.bz2
open-keychain-2eb776594f378ac7a14ea716f0a7470d34230ec2.zip
Handle revoked and expired keys in decrypt activity
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java56
1 files changed, 39 insertions, 17 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java
index 60874de63..3bd028da4 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java
@@ -86,6 +86,13 @@ public abstract class DecryptFragment extends Fragment {
startActivityForResult(intent, RESULT_CODE_LOOKUP_KEY);
}
+ private void showKey(long keyId) {
+ Intent viewKeyIntent = new Intent(getActivity(), ViewKeyActivity.class);
+ viewKeyIntent.setData(KeychainContract.KeyRings
+ .buildGenericKeyRingUri(keyId));
+ startActivity(viewKeyIntent);
+ }
+
protected void startPassphraseDialog(long subkeyId) {
Intent intent = new Intent(getActivity(), PassphraseDialogActivity.class);
intent.putExtra(PassphraseDialogActivity.EXTRA_SUBKEY_ID, subkeyId);
@@ -145,10 +152,7 @@ public abstract class DecryptFragment extends Fragment {
mSignatureLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- Intent viewKeyIntent = new Intent(getActivity(), ViewKeyActivity.class);
- viewKeyIntent.setData(KeychainContract.KeyRings
- .buildGenericKeyRingUri(mSignatureKeyId));
- startActivity(viewKeyIntent);
+ showKey(mSignatureKeyId);
}
});
break;
@@ -159,22 +163,30 @@ public abstract class DecryptFragment extends Fragment {
KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_UNVERIFIED);
setSignatureLayoutVisibility(View.VISIBLE);
- mSignatureAction.setText(R.string.decrypt_result_action_show);
- mSignatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_action_accounts, 0);
- mSignatureLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent viewKeyIntent = new Intent(getActivity(), ViewKeyActivity.class);
- viewKeyIntent.setData(KeychainContract.KeyRings
- .buildGenericKeyRingUri(mSignatureKeyId));
- startActivity(viewKeyIntent);
- }
- });
+ setShowAction(mSignatureAction, mSignatureKeyId);
+ break;
+ }
+
+ case OpenPgpSignatureResult.SIGNATURE_KEY_EXPIRED: {
+ mSignatureText.setText(R.string.decrypt_result_signature_expired_key);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_EXPIRED);
+
+ setSignatureLayoutVisibility(View.VISIBLE);
+ setShowAction(mSignatureAction, mSignatureKeyId);
+ break;
+ }
+
+ case OpenPgpSignatureResult.SIGNATURE_KEY_REVOKED: {
+ mSignatureText.setText(R.string.decrypt_result_signature_revoked_key);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_REVOKED);
+
+ setSignatureLayoutVisibility(View.VISIBLE);
+ setShowAction(mSignatureAction, mSignatureKeyId);
break;
}
case OpenPgpSignatureResult.SIGNATURE_KEY_MISSING: {
- mSignatureText.setText(R.string.decrypt_result_signature_unknown_pub_key);
+ mSignatureText.setText(R.string.decrypt_result_signature_missing_key);
KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_UNKNOWN_KEY);
setSignatureLayoutVisibility(View.VISIBLE);
@@ -189,7 +201,6 @@ public abstract class DecryptFragment extends Fragment {
break;
}
- // TODO: Maybe this should be part of the Result parcel, it is an error, not a valid status!
case OpenPgpSignatureResult.SIGNATURE_ERROR: {
mSignatureText.setText(R.string.decrypt_result_invalid_signature);
KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_INVALID);
@@ -214,6 +225,17 @@ public abstract class DecryptFragment extends Fragment {
mSignatureDivider2.setVisibility(visibility);
}
+ private void setShowAction(TextView signatureAction, final long signatureKeyId) {
+ signatureAction.setText(R.string.decrypt_result_action_show);
+ signatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_action_accounts, 0);
+ signatureAction.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ showKey(signatureKeyId);
+ }
+ });
+ }
+
/**
* Should be overridden by MessageFragment and FileFragment to start actual decryption
*/