mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-04-20 15:07:17 -04:00
PhoneModeObserver doesn't work properly in applications. Applications have to handle the phone mode changes via AppMgr. Phone mode and tethering handlers separated.
55 lines
1.5 KiB
C++
55 lines
1.5 KiB
C++
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
|
|
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#pragma once
|
|
|
|
#include "Common.hpp"
|
|
|
|
namespace sys
|
|
{
|
|
class Service; // Forward declaration
|
|
} // namespace sys
|
|
|
|
namespace sys::phone_modes
|
|
{
|
|
class Subject
|
|
{
|
|
public:
|
|
explicit Subject(Service *owner);
|
|
|
|
/**
|
|
* Sets phone and tethering modes
|
|
* @param _phoneMode Phone mode
|
|
* @param _tetheringMode Tethering mode
|
|
* @return true if modes changed, false otherwise
|
|
*/
|
|
bool setMode(PhoneMode _phoneMode, Tethering _tetheringMode);
|
|
|
|
/**
|
|
* Sets the phone mode
|
|
* @param mode Phone mode
|
|
* @return true if phone mode changed, false otherwise
|
|
*/
|
|
bool setPhoneMode(PhoneMode mode);
|
|
|
|
/**
|
|
* Sets the tethering mode
|
|
* @param mode Tethering mode
|
|
* @return true if tethering mode changed, false otherwise
|
|
*/
|
|
bool setTetheringMode(Tethering mode);
|
|
|
|
bool isTetheringEnabled() const noexcept;
|
|
|
|
private:
|
|
bool changePhoneMode(PhoneMode mode) noexcept;
|
|
void notifyPhoneModeChange();
|
|
bool changeTetheringMode(Tethering mode) noexcept;
|
|
void notifyTetheringChange();
|
|
|
|
Service *owner;
|
|
PhoneMode phoneMode = PhoneMode::Connected;
|
|
Tethering tetheringMode = Tethering::Off;
|
|
};
|
|
} // namespace sys::phone_modes
|