gecko-dev/hal/HalScreenConfiguration.h
Emilio Cobos Álvarez 28290f66db Bug 1754858 - Simplify screen orientation API implementation. r=smaug,m_kato,geckoview-reviewers
Make the ScreenOrientation part of the screen struct, as it should. Stop
using HAL to propagate just screen orientation updates, use the more
general screen manager.

Instead of HAL observers, add a simple observer service notification,
and clean a bunch of the code.

This will simplify bug 1754802 a bit, and is generally simpler.
Shouldn't change behavior. I've tested the events and some common
orientation locking use cases like Youtube, and they behave the same.

Differential Revision: https://phabricator.services.mozilla.com/D138477
2022-02-15 20:22:54 +00:00

35 lines
1.2 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set sw=2 ts=8 et ft=cpp : */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef mozilla_HalScreenConfiguration_h
#define mozilla_HalScreenConfiguration_h
#include "mozilla/Observer.h"
#include "mozilla/TypedEnumBits.h"
namespace mozilla::hal {
// Make sure that any change to ScreenOrientation values are also made in
// mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoScreenOrientation.java
enum class ScreenOrientation : uint32_t {
None = 0,
PortraitPrimary = 1u << 0,
PortraitSecondary = 1u << 1,
LandscapePrimary = 1u << 2,
LandscapeSecondary = 1u << 3,
// Default will use the natural orientation for the device, it could be
// PortraitPrimary or LandscapePrimary depends on display resolution
Default = 1u << 4,
};
constexpr auto kAllScreenOrientationBits = ScreenOrientation((1 << 5) - 1);
MOZ_MAKE_ENUM_CLASS_BITWISE_OPERATORS(ScreenOrientation);
} // namespace mozilla::hal
#endif // mozilla_HalScreenConfiguration_h