/** Disable/enable the move-to-newer/older buttons. */
 @Override
 protected void updateNavigationArrows() {
   final MessageOrderManager orderManager = getMessageOrderManager();
   if (orderManager == null) {
     // shouldn't happen, but just in case
     mMessageCommandButtons.enableNavigationButtons(false, false, 0, 0);
   } else {
     mMessageCommandButtons.enableNavigationButtons(
         orderManager.canMoveToNewer(), orderManager.canMoveToOlder(),
         orderManager.getCurrentPosition(), orderManager.getTotalMessageCount());
   }
 }
  /**
   * Apply the auto-advance policy upon initation of a batch command that could potentially affect
   * the currently selected conversation.
   */
  @Override
  public void onAdvancingOpAccepted(Set<Long> affectedMessages) {
    if (!isMessageViewInstalled()) {
      // Do nothing if message view is not visible.
      return;
    }

    final MessageOrderManager orderManager = getMessageOrderManager();
    int autoAdvanceDir = Preferences.getPreferences(mActivity).getAutoAdvanceDirection();
    if ((autoAdvanceDir == Preferences.AUTO_ADVANCE_MESSAGE_LIST) || (orderManager == null)) {
      if (affectedMessages.contains(getMessageId())) {
        goBackToMailbox();
      }
      return;
    }

    // Navigate to the first unselected item in the appropriate direction.
    switch (autoAdvanceDir) {
      case Preferences.AUTO_ADVANCE_NEWER:
        while (affectedMessages.contains(orderManager.getCurrentMessageId())) {
          if (!orderManager.moveToNewer()) {
            goBackToMailbox();
            return;
          }
        }
        navigateToMessage(orderManager.getCurrentMessageId());
        break;

      case Preferences.AUTO_ADVANCE_OLDER:
        while (affectedMessages.contains(orderManager.getCurrentMessageId())) {
          if (!orderManager.moveToOlder()) {
            goBackToMailbox();
            return;
          }
        }
        navigateToMessage(orderManager.getCurrentMessageId());
        break;
    }
  }