Merge "Fixup auto advance policy handling."
This commit is contained in:
commit
058eb3984f
|
@ -37,8 +37,6 @@ import java.util.Set;
|
||||||
* A class manages what are showing on {@link MessageListXL} (i.e. account id, mailbox id, and
|
* A class manages what are showing on {@link MessageListXL} (i.e. account id, mailbox id, and
|
||||||
* message id), and show/hide fragments accordingly.
|
* message id), and show/hide fragments accordingly.
|
||||||
*
|
*
|
||||||
* TODO Highlight selected message on message list
|
|
||||||
*
|
|
||||||
* TODO: Test it. It's testable if we implement MockFragmentTransaction, which may be too early
|
* TODO: Test it. It's testable if we implement MockFragmentTransaction, which may be too early
|
||||||
* to do so at this point. (API may not be stable enough yet.)
|
* to do so at this point. (API may not be stable enough yet.)
|
||||||
*
|
*
|
||||||
|
@ -152,7 +150,14 @@ class MessageListXLFragmentManager implements
|
||||||
if (Email.DEBUG_LIFECYCLE && Email.DEBUG) {
|
if (Email.DEBUG_LIFECYCLE && Email.DEBUG) {
|
||||||
Log.d(Logging.LOG_TAG, "MessageListXLFragmentManager#onMailboxNotFound()");
|
Log.d(Logging.LOG_TAG, "MessageListXLFragmentManager#onMailboxNotFound()");
|
||||||
}
|
}
|
||||||
// Shouldn't happen
|
// TODO: handle more gracefully.
|
||||||
|
Log.e(Logging.LOG_TAG, "unable to find mailbox for account " + accountId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMailboxNotFound() {
|
||||||
|
// TODO: handle more gracefully.
|
||||||
|
Log.e(Logging.LOG_TAG, "unable to find mailbox");
|
||||||
}
|
}
|
||||||
|
|
||||||
// MoveMessageToDialog$Callback
|
// MoveMessageToDialog$Callback
|
||||||
|
@ -209,11 +214,6 @@ class MessageListXLFragmentManager implements
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMailboxNotFound() {
|
|
||||||
// TODO: What to do??
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnterSelectionMode(boolean enter) {
|
public void onEnterSelectionMode(boolean enter) {
|
||||||
}
|
}
|
||||||
|
@ -652,11 +652,9 @@ class MessageListXLFragmentManager implements
|
||||||
switch (Preferences.getPreferences(mActivity).getAutoAdvanceDirection()) {
|
switch (Preferences.getPreferences(mActivity).getAutoAdvanceDirection()) {
|
||||||
case Preferences.AUTO_ADVANCE_NEWER:
|
case Preferences.AUTO_ADVANCE_NEWER:
|
||||||
if (moveToNewer()) return;
|
if (moveToNewer()) return;
|
||||||
if (moveToOlder()) return;
|
|
||||||
break;
|
break;
|
||||||
case Preferences.AUTO_ADVANCE_OLDER:
|
case Preferences.AUTO_ADVANCE_OLDER:
|
||||||
if (moveToOlder()) return;
|
if (moveToOlder()) return;
|
||||||
if (moveToNewer()) return;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Last message in the box or AUTO_ADVANCE_MESSAGE_LIST. Go back to message list.
|
// Last message in the box or AUTO_ADVANCE_MESSAGE_LIST. Go back to message list.
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
package com.android.email.activity;
|
package com.android.email.activity;
|
||||||
|
|
||||||
import com.android.email.Email;
|
import com.android.email.Email;
|
||||||
|
import com.android.email.Preferences;
|
||||||
import com.android.email.R;
|
import com.android.email.R;
|
||||||
import com.android.emailcommon.Logging;
|
import com.android.emailcommon.Logging;
|
||||||
import com.android.emailcommon.provider.EmailContent.Mailbox;
|
import com.android.emailcommon.provider.EmailContent.Mailbox;
|
||||||
|
@ -169,7 +170,8 @@ public class MessageView extends MessageViewBase implements View.OnClickListener
|
||||||
// the delete triggers mCursorObserver in MessageOrderManager.
|
// the delete triggers mCursorObserver in MessageOrderManager.
|
||||||
// first move to older/newer before the actual delete
|
// first move to older/newer before the actual delete
|
||||||
long messageIdToDelete = mMessageId;
|
long messageIdToDelete = mMessageId;
|
||||||
boolean moved = moveToOlder() || moveToNewer(); // TODO use "auto-advance" preference
|
|
||||||
|
boolean moved = autoAdvance();
|
||||||
ActivityHelper.deleteMessage(this, messageIdToDelete);
|
ActivityHelper.deleteMessage(this, messageIdToDelete);
|
||||||
if (!moved) {
|
if (!moved) {
|
||||||
// this generates a benign warning "Duplicate finish request" because
|
// this generates a benign warning "Duplicate finish request" because
|
||||||
|
@ -179,6 +181,22 @@ public class MessageView extends MessageViewBase implements View.OnClickListener
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Auto-advances the message being shown according to the auto-advance policy set in preferences
|
||||||
|
* @return Whether or not a new message was selected. This will return false either if there are
|
||||||
|
* no appropriate messages to advance to, or if the preferences indicate we should not
|
||||||
|
* auto-advance
|
||||||
|
*/
|
||||||
|
private boolean autoAdvance() {
|
||||||
|
switch (Preferences.getPreferences(this).getAutoAdvanceDirection()) {
|
||||||
|
case Preferences.AUTO_ADVANCE_NEWER:
|
||||||
|
return moveToNewer();
|
||||||
|
case Preferences.AUTO_ADVANCE_OLDER:
|
||||||
|
return moveToOlder();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private boolean moveToOlder() {
|
private boolean moveToOlder() {
|
||||||
if (mOrderManager != null && mOrderManager.moveToOlder()) {
|
if (mOrderManager != null && mOrderManager.moveToOlder()) {
|
||||||
mMessageId = mOrderManager.getCurrentMessageId();
|
mMessageId = mOrderManager.getCurrentMessageId();
|
||||||
|
@ -258,7 +276,9 @@ public class MessageView extends MessageViewBase implements View.OnClickListener
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMessageSetUnread() {
|
public void onMessageSetUnread() {
|
||||||
finish();
|
if (!autoAdvance()) {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enableForwardReply(boolean enabled) {
|
private void enableForwardReply(boolean enabled) {
|
||||||
|
@ -319,9 +339,8 @@ public class MessageView extends MessageViewBase implements View.OnClickListener
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRespondedToInvite(int response) {
|
public void onRespondedToInvite(int response) {
|
||||||
// TODO use "auto-advance" preference
|
if (!autoAdvance()) {
|
||||||
if (!moveToOlder()) {
|
finish();
|
||||||
finish(); // if this is the last message, move up to message-list.
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue