diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java index 8924313e3..7dc1a15e4 100644 --- a/src/com/fsck/k9/activity/MessageList.java +++ b/src/com/fsck/k9/activity/MessageList.java @@ -889,7 +889,7 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme * Set visibility of menu items related to the message view */ - if (mMessageViewFragment == null) { + if (mMessageViewFragment == null || !mMessageViewFragment.isInitialized()) { menu.findItem(R.id.delete).setVisible(false); menu.findItem(R.id.single_message_options).setVisible(false); menu.findItem(R.id.archive).setVisible(false); diff --git a/src/com/fsck/k9/fragment/MessageViewFragment.java b/src/com/fsck/k9/fragment/MessageViewFragment.java index 524d40501..151d445a4 100644 --- a/src/com/fsck/k9/fragment/MessageViewFragment.java +++ b/src/com/fsck/k9/fragment/MessageViewFragment.java @@ -91,6 +91,13 @@ public class MessageViewFragment extends SherlockFragment implements OnClickList private MessageViewFragmentListener mFragmentListener; + /** + * {@code true} after {@link #onCreate(Bundle)} has been executed. This is used by + * {@code MessageList.configureMenu()} to make sure the fragment has been initialized before + * it is used. + */ + private boolean mInitialized = false; + class MessageViewHandler extends Handler { @@ -153,6 +160,7 @@ public class MessageViewFragment extends SherlockFragment implements OnClickList setHasOptionsMenu(true); mController = MessagingController.getInstance(getActivity().getApplication()); + mInitialized = true; } @Override @@ -808,4 +816,8 @@ public class MessageViewFragment extends SherlockFragment implements OnClickList public void messageHeaderViewAvailable(MessageHeader messageHeaderView); public void updateMenu(); } + + public boolean isInitialized() { + return mInitialized ; + } }