consolidates logic to make flow easier to understand, and make sure takeFocusedPhoto/takePhotoAF doesn't get stuck in any weird state