We have an app which consists of screens ("Activity" in Android) which mostly enforce landscape mode, because they deal with camera viewing, camera recording, ... Because there are so many of them, also the main screen enforces landscape mode. Aside from them there are a few screens which could be displayed both in landscape and portrait mode, such as (e.g.) lists of files.
We first started with all screens enforcing landscape mode to keep things consistent. But then we enabled the change between landscape and portrait for such listing screens to make navigation trough long lists easier.
On devices which have auto rotation enabled (this is a system-wide setting), everything behaves as expected. You mostly have your device in landscape and on list screens, you can rotate the device if you want (but you don't have to).
But on devices where the user disabled the system-wide auto rotation, this means that portrait is used by default. If you happen to leave the camera screen (forced landscape) to switch to a list while still holding the phone in landscape, the list suddenly is displayed in portrait mode and you are forced to turn your phone.
This is definitely unexpected and even resulted in bug reports. What would you advise?
- Force landscape for everything. Pro: Consistent. Con: Navigating trough long lists is much harder than it could be.
- Enable Auto-Rotation everywhere. This is not possible because of the camera-centric nature of our app. VVS would destroy the experience.
- Write custom code to ignore the system-wide auto-rotation disable and rotate the list screens to both landscape and portrait if needed. Pro: Long list navigation is still easy. Con: Goes against the explicit user intent to disable the rotation (think of cases where the auto rotation fails, e.g. when you are lying on your side and use the phone)
- Write custom code to force landscape mode everywhere only for devices with system-wide disabled auto rotation. Pro: Auto rotation is disabled if requested and on all other phones, long-list navigation is easy. Con: Disabled auto-rotation usually means that it is fixed portrait mode.