diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-04-14 01:11:08 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-04-14 01:11:08 +0200 |
commit | 13ffd2038d56d90ffc583663a98c378ee9d9aa00 (patch) | |
tree | 0009143b39833be11bc428c340ffc602f2e3069b /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java | |
parent | 55bad4cac747cedfdda978a94d41f8069358373f (diff) | |
download | open-keychain-13ffd2038d56d90ffc583663a98c378ee9d9aa00.tar.gz open-keychain-13ffd2038d56d90ffc583663a98c378ee9d9aa00.tar.bz2 open-keychain-13ffd2038d56d90ffc583663a98c378ee9d9aa00.zip |
key edit: fix crash when create date was after expiry date, change from gregorian calendar to calendar with creation from instance, experimental result status for 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.java | 84 |
1 files changed, 53 insertions, 31 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 1c465f55c..2254029df 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java @@ -26,6 +26,7 @@ import android.support.v4.app.Fragment; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; @@ -34,10 +35,8 @@ import com.devspark.appmsg.AppMsg; import org.openintents.openpgp.OpenPgpSignatureResult; import org.sufficientlysecure.keychain.R; +import org.sufficientlysecure.keychain.pgp.PgpDecryptVerifyResult; import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; -import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException; -import org.sufficientlysecure.keychain.provider.KeychainContract; -import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.ui.dialog.PassphraseDialogFragment; public class DecryptFragment extends Fragment { @@ -45,19 +44,24 @@ public class DecryptFragment extends Fragment { protected long mSignatureKeyId = 0; - protected RelativeLayout mSignatureLayout = null; - protected ImageView mSignatureStatusImage = null; - protected TextView mUserId = null; - protected TextView mUserIdRest = null; + protected LinearLayout mResultLayout; + protected RelativeLayout mSignatureLayout; + protected TextView mResultText; - protected BootstrapButton mLookupKey = null; + protected ImageView mSignatureStatusImage; + protected TextView mUserId; + protected TextView mUserIdRest; + + protected BootstrapButton mLookupKey; @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - mSignatureLayout = (RelativeLayout) getView().findViewById(R.id.signature); + mResultLayout = (LinearLayout) getView().findViewById(R.id.result); + mResultText = (TextView) getView().findViewById(R.id.result_text); + mSignatureLayout = (RelativeLayout) getView().findViewById(R.id.result_signature); mSignatureStatusImage = (ImageView) getView().findViewById(R.id.ic_signature_status); mUserId = (TextView) getView().findViewById(R.id.mainUserId); mUserIdRest = (TextView) getView().findViewById(R.id.mainUserIdRest); @@ -68,8 +72,8 @@ public class DecryptFragment extends Fragment { lookupUnknownKey(mSignatureKeyId); } }); - mSignatureLayout.setVisibility(View.GONE); - mSignatureLayout.setOnClickListener(new OnClickListener() { + mResultLayout.setVisibility(View.GONE); + mResultLayout.setOnClickListener(new OnClickListener() { public void onClick(View v) { lookupUnknownKey(mSignatureKeyId); } @@ -102,10 +106,13 @@ public class DecryptFragment extends Fragment { } } - protected void onSignatureResult(OpenPgpSignatureResult signatureResult) { + protected void onResult(PgpDecryptVerifyResult decryptVerifyResult) { + OpenPgpSignatureResult signatureResult = decryptVerifyResult.getSignatureResult(); + mSignatureKeyId = 0; - mSignatureLayout.setVisibility(View.GONE); + mResultLayout.setVisibility(View.VISIBLE); if (signatureResult != null) { + mSignatureStatusImage.setVisibility(View.VISIBLE); mSignatureKeyId = signatureResult.getKeyId(); @@ -124,48 +131,63 @@ public class DecryptFragment extends Fragment { } switch (signatureResult.getStatus()) { - case OpenPgpSignatureResult.SIGNATURE_SUCCESS_UNCERTIFIED: { + case OpenPgpSignatureResult.SIGNATURE_SUCCESS_CERTIFIED: { + mResultText.setText(R.string.decrypt_verified_successful); + + mResultLayout.setBackgroundColor(getResources().getColor(R.color.result_green)); mSignatureStatusImage.setImageResource(R.drawable.overlay_ok); mLookupKey.setVisibility(View.GONE); break; } - // TODO! -// case OpenPgpSignatureResult.SIGNATURE_SUCCESS_CERTIFIED: { -// break; -// } + case OpenPgpSignatureResult.SIGNATURE_SUCCESS_UNCERTIFIED: { + mResultText.setText(R.string.decrypt_verified_successful); + + mResultLayout.setBackgroundColor(getResources().getColor(R.color.result_orange)); + mSignatureStatusImage.setImageResource(R.drawable.overlay_ok); + mLookupKey.setVisibility(View.GONE); + break; + } case OpenPgpSignatureResult.SIGNATURE_UNKNOWN_PUB_KEY: { + mResultText.setText(R.string.unknown_signature); + + mResultLayout.setBackgroundColor(getResources().getColor(R.color.result_orange)); mSignatureStatusImage.setImageResource(R.drawable.overlay_error); mLookupKey.setVisibility(View.VISIBLE); - AppMsg.makeText(getActivity(), - R.string.unknown_signature, - AppMsg.STYLE_ALERT).show(); break; } default: { + mResultText.setText(R.string.error); + + mResultLayout.setBackgroundColor(getResources().getColor(R.color.result_red)); mSignatureStatusImage.setImageResource(R.drawable.overlay_error); mLookupKey.setVisibility(View.GONE); break; } } - mSignatureLayout.setVisibility(View.VISIBLE); + } else { + mSignatureLayout.setVisibility(View.GONE); + + // only successful decryption + mResultLayout.setBackgroundColor(getResources().getColor(R.color.result_blue)); + mResultText.setText(R.string.decrypt_successful); } } protected void showPassphraseDialog(long keyId) { PassphraseDialogFragment.show(getActivity(), keyId, - new Handler() { - @Override - public void handleMessage(Message message) { - if (message.what == PassphraseDialogFragment.MESSAGE_OKAY) { - String passphrase = - message.getData().getString(PassphraseDialogFragment.MESSAGE_DATA_PASSPHRASE); - decryptStart(passphrase); + new Handler() { + @Override + public void handleMessage(Message message) { + if (message.what == PassphraseDialogFragment.MESSAGE_OKAY) { + String passphrase = + message.getData().getString(PassphraseDialogFragment.MESSAGE_DATA_PASSPHRASE); + decryptStart(passphrase); + } } - } - }); + }); } /** |