From bcd570f8843e1a4ff79498dc519cceee701b2085 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Wed, 28 Jan 2015 18:11:38 +0100 Subject: [PATCH] always show OpenPgpHeader if crypto-provider is set --- .../k9/mailstore/LocalMessageExtractor.java | 4 +-- .../ui/messageview/MessageContainerView.java | 36 ++++++++++--------- .../k9/ui/messageview/MessageTopView.java | 3 +- .../k9/ui/messageview/OpenPgpHeaderView.java | 35 ++++++++++-------- 4 files changed, 43 insertions(+), 35 deletions(-) diff --git a/k9mail/src/main/java/com/fsck/k9/mailstore/LocalMessageExtractor.java b/k9mail/src/main/java/com/fsck/k9/mailstore/LocalMessageExtractor.java index 80a05d93e..a021bcede 100644 --- a/k9mail/src/main/java/com/fsck/k9/mailstore/LocalMessageExtractor.java +++ b/k9mail/src/main/java/com/fsck/k9/mailstore/LocalMessageExtractor.java @@ -435,9 +435,7 @@ public class LocalMessageExtractor { // TODO correctly extract OpenPgpSignatureResult and add to MessageViewContainer OpenPgpSignatureResult result = null; - result = new OpenPgpSignatureResult(OpenPgpSignatureResult.SIGNATURE_SUCCESS_CERTIFIED, "lul", false, 0x123, - new ArrayList()); - containers.add(new MessageViewContainer(viewable.html, attachmentInfos, result, true, null)); + containers.add(new MessageViewContainer(viewable.html, attachmentInfos, result, false, null)); } diff --git a/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageContainerView.java b/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageContainerView.java index 2eac9e7b3..535830dfe 100644 --- a/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageContainerView.java +++ b/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageContainerView.java @@ -103,10 +103,13 @@ public class MessageContainerView extends LinearLayout implements OnClickListene private ClipboardManager mClipboardManager; private String mText; private Map attachments = new HashMap(); + private boolean displayPgpData; + private OpenPgpHeaderView openPgpHeaderView; public void initialize(Fragment fragment, AttachmentViewCallback attachmentCallback, - OpenPgpHeaderViewCallback openPgpHeaderViewCallback) { + OpenPgpHeaderViewCallback openPgpHeaderViewCallback, + boolean displayPgpData) { this.attachmentCallback = attachmentCallback; this.openPgpHeaderViewCallback = openPgpHeaderViewCallback; @@ -137,6 +140,13 @@ public class MessageContainerView extends LinearLayout implements OnClickListene mInflater = ((MessageViewFragment) fragment).getFragmentLayoutInflater(); mMessageContentView.setVisibility(View.VISIBLE); + this.displayPgpData = displayPgpData; + + if (displayPgpData) { + openPgpHeaderView = (OpenPgpHeaderView) mOpenPgpHeaderStub.inflate(); + openPgpHeaderView.initialize(); + } + // the HTC version of WebView tries to force the background of the // titlebar, which is really unfair. TypedValue outValue = new TypedValue(); @@ -435,14 +445,6 @@ public class MessageContainerView extends LinearLayout implements OnClickListene throws MessagingException { resetView(); -// mHasOpenPgpInfo = (messageViewContainer.signatureResult != null -// || messageViewContainer.encrypted); -// if (mHasOpenPgpInfo) { - renderOpenPgpHeader(messageViewContainer); - mSidebar.setVisibility(View.VISIBLE); - -// } - // Save the text so we can reset the WebView when the user clicks the "Show pictures" button mText = messageViewContainer.text; @@ -487,6 +489,14 @@ public class MessageContainerView extends LinearLayout implements OnClickListene } */ + if (displayPgpData) { + openPgpHeaderView.setOpenPgpData(messageViewContainer.signatureResult, messageViewContainer.encrypted, + messageViewContainer.pgpPendingIntent); + openPgpHeaderView.setCallback(openPgpHeaderViewCallback); + } + + mSidebar.setVisibility(View.VISIBLE); + if (mText != null) { loadBodyFromText(mText); } else { @@ -503,14 +513,6 @@ public class MessageContainerView extends LinearLayout implements OnClickListene mMessageContentView.setText(emailText); } - public void renderOpenPgpHeader(MessageViewContainer messageContainer) { - // inflate real header into stub - OpenPgpHeaderView view = (OpenPgpHeaderView) mOpenPgpHeaderStub.inflate(); - view.setCallback(openPgpHeaderViewCallback); - view.setOpenPgpData(messageContainer.signatureResult, messageContainer.encrypted, - messageContainer.pgpPendingIntent); - } - public void renderAttachments(MessageViewContainer messageContainer) throws MessagingException { for (AttachmentViewInfo attachment : messageContainer.attachments) { AttachmentView view = (AttachmentView) mInflater.inflate(R.layout.message_view_attachment, null); diff --git a/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageTopView.java b/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageTopView.java index 90c595d68..9b9829494 100644 --- a/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageTopView.java +++ b/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageTopView.java @@ -69,7 +69,8 @@ public class MessageTopView extends LinearLayout { for (MessageViewContainer container : messageViewInfo.containers) { MessageContainerView view = (MessageContainerView) mInflater.inflate(R.layout.message_container, null); - view.initialize(fragment, attachmentCallback, openPgpHeaderViewCallback); + view.initialize(fragment, attachmentCallback, openPgpHeaderViewCallback, + !Account.NO_OPENPGP_PROVIDER.equals(account.getOpenPgpProvider())); view.setMessage(container); containerViews.addView(view); } diff --git a/k9mail/src/main/java/com/fsck/k9/ui/messageview/OpenPgpHeaderView.java b/k9mail/src/main/java/com/fsck/k9/ui/messageview/OpenPgpHeaderView.java index 1fff39685..2cb90fb3e 100644 --- a/k9mail/src/main/java/com/fsck/k9/ui/messageview/OpenPgpHeaderView.java +++ b/k9mail/src/main/java/com/fsck/k9/ui/messageview/OpenPgpHeaderView.java @@ -38,6 +38,17 @@ public class OpenPgpHeaderView extends LinearLayout { mContext = context; } + public void initialize () { + mResultEncryptionIcon = (ImageView) findViewById(R.id.result_encryption_icon); + mResultEncryptionText = (TextView) findViewById(R.id.result_encryption_text); + mResultSignatureIcon = (ImageView) findViewById(R.id.result_signature_icon); + mResultSignatureText = (TextView) findViewById(R.id.result_signature_text); + mResultSignatureLayout = (LinearLayout) findViewById(R.id.result_signature_layout); + mResultSignatureName = (TextView) findViewById(R.id.result_signature_name); + mResultSignatureEmail = (TextView) findViewById(R.id.result_signature_email); + mResultSignatureButton = (Button) findViewById(R.id.result_signature_button); + } + public void setOpenPgpData(OpenPgpSignatureResult signatureResult, boolean encrypted, PendingIntent pendingIntent) { this.signatureResult = signatureResult; @@ -52,21 +63,17 @@ public class OpenPgpHeaderView extends LinearLayout { } public void displayOpenPgpView() { - mResultEncryptionIcon = (ImageView) findViewById(R.id.result_encryption_icon); - mResultEncryptionText = (TextView) findViewById(R.id.result_encryption_text); - mResultSignatureIcon = (ImageView) findViewById(R.id.result_signature_icon); - mResultSignatureText = (TextView) findViewById(R.id.result_signature_text); - mResultSignatureLayout = (LinearLayout) findViewById(R.id.result_signature_layout); - mResultSignatureName = (TextView) findViewById(R.id.result_signature_name); - mResultSignatureEmail = (TextView) findViewById(R.id.result_signature_email); - mResultSignatureButton = (Button) findViewById(R.id.result_signature_button); - mResultSignatureButton.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - callback.onPgpSignatureButtonClick(pendingIntent); - } - }); + if (pendingIntent != null) { + mResultSignatureButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + callback.onPgpSignatureButtonClick(pendingIntent); + } + }); + } else { + mResultSignatureButton.setOnClickListener(null); + } if (encrypted) { setStatusImage(mContext, mResultEncryptionIcon, mResultEncryptionText, STATE_ENCRYPTED);