The answer is simple, you changed the applied rotations to:
applyRotation (-1, 0, 90); and applyRotation (1, 0, 90);
this is when you first call it, and when you call it in the second half, you use the following:
if (mPosition > -1) {
mStartView.setVisibility(View.GONE);
mEndView.setVisibility(View.VISIBLE);
mEndView.requestFocus();
//rotation = new Rotate3dAnimation(90, 180, centerX, centerY, 310.0f, false);
rotation = new Rotate3dAnimation(-90, 0, centerX, centerY, 310.0f, false);
} else {
mEndView.setVisibility(View.GONE);
mStartView.setVisibility(View.VISIBLE);
mStartView.requestFocus();
rotation = new Rotate3dAnimation(-90, 0, centerX, centerY, 310.0f, false);
//rotation = new Rotate3dAnimation(90, 0, centerX, centerY, 310.0f, false);
}
.