public void setCurrentPane(final Pane pane) {
    // ensure no double adds
    if (pane == mCurrentPane) return;

    // map pane is top-lvl. clear stack.
    if (pane == Pane.MAP) {
      mBackStack.clear();
    }
    // don't push current pane to backstack if this method was called via back button
    else if (!mBackButtonPressed) mBackStack.push(mCurrentPane);

    mBackButtonPressed = false;
    mCurrentPane = pane;
    mNavigationHelper.switchTo(pane);
  }