mirror of
https://github.com/moparisthebest/k-9
synced 2025-02-17 07:30:16 -05:00
invalidate message content WebView when the message header changes
This fixes redraw issues where text appears doubled or is cut off
This commit is contained in:
parent
ae6679769b
commit
f1baa8f461
@ -63,6 +63,8 @@ public class MessageHeader extends ScrollView implements OnClickListener {
|
||||
private ImageView mShowAdditionalHeadersIcon;
|
||||
private SavedState mSavedState;
|
||||
|
||||
private OnLayoutChangedListener mOnLayoutChangedListener;
|
||||
|
||||
/**
|
||||
* Pair class is only available since API Level 5, so we need
|
||||
* this helper class unfortunately
|
||||
@ -272,6 +274,7 @@ public class MessageHeader extends ScrollView implements OnClickListener {
|
||||
} else {
|
||||
showAdditionalHeaders();
|
||||
}
|
||||
layoutChanged();
|
||||
}
|
||||
|
||||
private List<HeaderEntry> getAdditionalHeaders(final Message message)
|
||||
@ -378,4 +381,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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user