1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-12-25 17:18:50 -05:00

Restore code to remember the last direction messages were displayed in

This commit is contained in:
cketti 2013-03-01 22:38:09 +01:00
parent f0af73b086
commit 04e1bf6976

View File

@ -83,6 +83,10 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme
private static final String STATE_DISPLAY_MODE = "displayMode"; private static final String STATE_DISPLAY_MODE = "displayMode";
private static final String STATE_MESSAGE_LIST_WAS_DISPLAYED = "messageListWasDisplayed"; private static final String STATE_MESSAGE_LIST_WAS_DISPLAYED = "messageListWasDisplayed";
// Used for navigating to next/previous message
private static final int PREVIOUS = 1;
private static final int NEXT = 2;
public static void actionDisplaySearch(Context context, SearchSpecification search, public static void actionDisplaySearch(Context context, SearchSpecification search,
boolean noThreading, boolean newTask) { boolean noThreading, boolean newTask) {
actionDisplaySearch(context, search, noThreading, newTask, true); actionDisplaySearch(context, search, noThreading, newTask, true);
@ -168,6 +172,7 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme
private ProgressBar mActionBarProgress; private ProgressBar mActionBarProgress;
private MenuItem mMenuButtonCheckMail; private MenuItem mMenuButtonCheckMail;
private View mActionButtonIndeterminateProgress; private View mActionButtonIndeterminateProgress;
private int mLastDirection = (K9.messageViewShowNext()) ? NEXT : PREVIOUS;
/** /**
* {@code true} if the message list should be displayed as flat list (i.e. no threading) * {@code true} if the message list should be displayed as flat list (i.e. no threading)
@ -1356,7 +1361,7 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme
@Override @Override
public void showNextMessageOrReturn() { public void showNextMessageOrReturn() {
if (K9.messageViewReturnToList() || !showNextMessage()) { if (K9.messageViewReturnToList() || !showLogicalNextMessage()) {
if (mDisplayMode == DisplayMode.SPLIT_VIEW) { if (mDisplayMode == DisplayMode.SPLIT_VIEW) {
showMessageViewPlaceHolder(); showMessageViewPlaceHolder();
} else { } else {
@ -1365,6 +1370,26 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme
} }
} }
/**
* Shows the next message in the direction the user was displaying messages.
*
* @return {@code true}
*/
private boolean showLogicalNextMessage() {
boolean result = false;
if (mLastDirection == NEXT) {
result = showNextMessage();
} else if (mLastDirection == PREVIOUS) {
result = showPreviousMessage();
}
if (!result) {
result = showNextMessage() || showPreviousMessage();
}
return result;
}
@Override @Override
public void setProgress(boolean enable) { public void setProgress(boolean enable) {
setSupportProgressBarIndeterminateVisibility(enable); setSupportProgressBarIndeterminateVisibility(enable);
@ -1379,6 +1404,7 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme
MessageReference ref = mMessageViewFragment.getMessageReference(); MessageReference ref = mMessageViewFragment.getMessageReference();
if (ref != null) { if (ref != null) {
if (mMessageListFragment.openNext(ref)) { if (mMessageListFragment.openNext(ref)) {
mLastDirection = NEXT;
return true; return true;
} }
} }
@ -1389,6 +1415,7 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme
MessageReference ref = mMessageViewFragment.getMessageReference(); MessageReference ref = mMessageViewFragment.getMessageReference();
if (ref != null) { if (ref != null) {
if (mMessageListFragment.openPrevious(ref)) { if (mMessageListFragment.openPrevious(ref)) {
mLastDirection = PREVIOUS;
return true; return true;
} }
} }