diff --git a/res/drawable/separator_area_background.xml b/res/drawable/message_view_header_background.xml similarity index 100% rename from res/drawable/separator_area_background.xml rename to res/drawable/message_view_header_background.xml diff --git a/res/layout/message_view_header.xml b/res/layout/message_view_header.xml index fe5c486a0..19bd2a52d 100644 --- a/res/layout/message_view_header.xml +++ b/res/layout/message_view_header.xml @@ -17,7 +17,7 @@ android:layout_height="wrap_content" android:stretchColumns="1" android:shrinkColumns="1" - android:background="@color/message_view_header_background"> + android:background="@drawable/message_view_header_background"> @@ -30,6 +30,7 @@ @@ -134,14 +135,56 @@ + + - + + + + + + + + + + + + + + @@ -188,57 +231,32 @@ android:textColor="?android:attr/textColorPrimary" android:textAppearance="?android:attr/textAppearanceSmall"/> + + + + + - - - - - - - - - - - - - - - - - + android:layout_height="1.5dp" + android:background="#59000000"/> getAdditionalHeaders(final Message message) @@ -378,4 +403,18 @@ public class MessageHeader extends ScrollView implements OnClickListener { out.writeInt((this.additionalHeadersVisible) ? 1 : 0); } } + + public interface OnLayoutChangedListener { + void onLayoutChanged(); + } + + public void setOnLayoutChangedListener(OnLayoutChangedListener listener) { + mOnLayoutChangedListener = listener; + } + + private void layoutChanged() { + if (mOnLayoutChangedListener != null) { + mOnLayoutChangedListener.onLayoutChanged(); + } + } } diff --git a/src/com/fsck/k9/view/SingleMessageView.java b/src/com/fsck/k9/view/SingleMessageView.java index b1e0980e9..a19796d8c 100644 --- a/src/com/fsck/k9/view/SingleMessageView.java +++ b/src/com/fsck/k9/view/SingleMessageView.java @@ -33,7 +33,8 @@ import com.fsck.k9.mail.store.LocalStore.LocalMessage; import java.util.List; -public class SingleMessageView extends LinearLayout implements OnClickListener { +public class SingleMessageView extends LinearLayout implements OnClickListener, + MessageHeader.OnLayoutChangedListener { private boolean mScreenReaderEnabled; private MessageCryptoView mCryptoView; private MessageWebView mMessageContentView; @@ -65,6 +66,7 @@ public class SingleMessageView extends LinearLayout implements OnClickListener { mHeaderPlaceHolder = (LinearLayout) findViewById(R.id.message_view_header_container); mHeaderContainer = (MessageHeader) findViewById(R.id.header_container); + mHeaderContainer.setOnLayoutChangedListener(this); mAttachmentsContainer = findViewById(R.id.attachments_container); mInsideAttachmentsContainer = (LinearLayout) findViewById(R.id.inside_attachments_container); @@ -508,6 +510,12 @@ public class SingleMessageView extends LinearLayout implements OnClickListener { mSavedState = savedState; } + public void onLayoutChanged() { + if (mMessageContentView != null) { + mMessageContentView.invalidate(); + } + } + static class SavedState extends BaseSavedState { boolean attachmentViewVisible; boolean hiddenAttachmentsVisible;