diff --git a/res/layout/message_view_header.xml b/res/layout/message_view_header.xml
index 473996f8d..cb366797d 100644
--- a/res/layout/message_view_header.xml
+++ b/res/layout/message_view_header.xml
@@ -153,34 +153,16 @@
-
-
-
-
-
-
diff --git a/res/menu/message_list_option.xml b/res/menu/message_list_option.xml
index e868bf835..cf4161acb 100644
--- a/res/menu/message_list_option.xml
+++ b/res/menu/message_list_option.xml
@@ -112,6 +112,14 @@
android:showAsAction="never"
android:title="@string/mark_as_unread_action"/>
+
+
+
+
- Remove star
Copy
Select text
+ Show headers
+ Hide headers
Switch to dark theme
Switch to light theme
diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java
index a86b31022..6e65fcd52 100644
--- a/src/com/fsck/k9/activity/MessageList.java
+++ b/src/com/fsck/k9/activity/MessageList.java
@@ -838,6 +838,12 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme
mMessageViewFragment.onSelectText();
return true;
}
+ case R.id.show_headers:
+ case R.id.hide_headers: {
+ mMessageViewFragment.onToggleAllHeadersView();
+ updateMenu();
+ return true;
+ }
}
if (!mSingleFolderMode) {
@@ -927,6 +933,8 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme
menu.findItem(R.id.toggle_unread).setVisible(false);
menu.findItem(R.id.select_text).setVisible(false);
menu.findItem(R.id.toggle_message_view_theme).setVisible(false);
+ menu.findItem(R.id.show_headers).setVisible(false);
+ menu.findItem(R.id.hide_headers).setVisible(false);
} else {
// hide prev/next buttons in split mode
if (mDisplayMode != DisplayMode.MESSAGE_VIEW) {
@@ -974,6 +982,13 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme
menu.findItem(R.id.archive).setVisible(false);
menu.findItem(R.id.spam).setVisible(false);
}
+
+ if (mMessageViewFragment.allHeadersVisible()) {
+ menu.findItem(R.id.show_headers).setVisible(false);
+ } else {
+ menu.findItem(R.id.hide_headers).setVisible(false);
+ }
+
}
diff --git a/src/com/fsck/k9/fragment/MessageViewFragment.java b/src/com/fsck/k9/fragment/MessageViewFragment.java
index 51f5723c3..fefa26f48 100644
--- a/src/com/fsck/k9/fragment/MessageViewFragment.java
+++ b/src/com/fsck/k9/fragment/MessageViewFragment.java
@@ -276,6 +276,14 @@ public class MessageViewFragment extends SherlockFragment implements OnClickList
}
}
+ public void onToggleAllHeadersView() {
+ mMessageView.getMessageHeaderView().onShowAdditionalHeaders();
+ }
+
+ public boolean allHeadersVisible() {
+ return mMessageView.getMessageHeaderView().additionalHeadersVisible();
+ }
+
private void delete() {
if (mMessage != null) {
// Disable the delete button after it's tapped (to try to prevent
diff --git a/src/com/fsck/k9/view/MessageHeader.java b/src/com/fsck/k9/view/MessageHeader.java
index 3d08f4946..c0bd45db9 100644
--- a/src/com/fsck/k9/view/MessageHeader.java
+++ b/src/com/fsck/k9/view/MessageHeader.java
@@ -59,7 +59,6 @@ public class MessageHeader extends ScrollView implements OnClickListener {
private Account mAccount;
private FontSizes mFontSizes = K9.getFontSizes();
private Contacts mContacts;
- private ImageView mShowAdditionalHeadersIcon;
private SavedState mSavedState;
private OnLayoutChangedListener mOnLayoutChangedListener;
@@ -99,7 +98,6 @@ public class MessageHeader extends ScrollView implements OnClickListener {
mDateView = (TextView) findViewById(R.id.date);
mTimeView = (TextView) findViewById(R.id.time);
mFlagged = (CheckBox) findViewById(R.id.flagged);
- mShowAdditionalHeadersIcon = (ImageView) findViewById(R.id.show_additional_headers_icon);
defaultSubjectColor = mSubjectView.getCurrentTextColor();
mSubjectView.setTextSize(TypedValue.COMPLEX_UNIT_SP, mFontSizes.getMessageViewSubject());
@@ -111,7 +109,6 @@ public class MessageHeader extends ScrollView implements OnClickListener {
mToView.setTextSize(TypedValue.COMPLEX_UNIT_SP, mFontSizes.getMessageViewTo());
mCcView.setTextSize(TypedValue.COMPLEX_UNIT_SP, mFontSizes.getMessageViewCC());
- mShowAdditionalHeadersIcon.setOnClickListener(this);
mFromView.setOnClickListener(this);
mToView.setOnClickListener(this);
mCcView.setOnClickListener(this);
@@ -127,10 +124,6 @@ public class MessageHeader extends ScrollView implements OnClickListener {
@Override
public void onClick(View view) {
switch (view.getId()) {
- case R.id.show_additional_headers_icon: {
- onShowAdditionalHeaders();
- break;
- }
case R.id.from: {
onAddSenderToContacts();
break;
@@ -173,7 +166,6 @@ public class MessageHeader extends ScrollView implements OnClickListener {
private void hideAdditionalHeaders() {
mAdditionalHeadersView.setVisibility(View.GONE);
mAdditionalHeadersView.setText("");
- mShowAdditionalHeadersIcon.setImageResource(R.drawable.show_more);
}
@@ -192,7 +184,6 @@ public class MessageHeader extends ScrollView implements OnClickListener {
// Show the additional headers that we have got.
populateAdditionalHeadersView(additionalHeaders);
mAdditionalHeadersView.setVisibility(View.VISIBLE);
- mShowAdditionalHeadersIcon.setImageResource(R.drawable.show_less);
}
if (!allHeadersDownloaded) {
/*