isOrientationInLandscapeMode function
Returns true if device orientation is in Landscape mode.
Implementation
bool isOrientationInLandscapeMode() {
// `window.orientation` is only defined in mobile browsers (reading it as an
// `int` throws when it's `undefined`):
var orientation = window.getProperty<JSAny?>('orientation'.toJS);
if (orientation.isA<JSNumber>()) {
var angle = (orientation as JSNumber).toDartDouble;
return angle == 90 || angle == -90;
}
// `screen.orientation` is missing in older browsers (e.g. desktop Safari
// before 16.4):
var screenOrientation = window.screen.getProperty<JSAny?>('orientation'.toJS);
if (screenOrientation.isA<JSObject>()) {
var type = (screenOrientation as JSObject).getProperty<JSAny?>('type'.toJS);
if (type.isA<JSString>()) {
return (type as JSString).toDart.startsWith('landscape');
}
}
return window.innerWidth > window.innerHeight;
}