Factor out phone rotation support into a separate class