mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-10-17 14:19:43 +00:00
Refactor NotifySettings in PeerData.
This commit is contained in:
60
Telegram/SourceFiles/data/data_notify_settings.h
Normal file
60
Telegram/SourceFiles/data/data_notify_settings.h
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
This file is part of Telegram Desktop,
|
||||
the official desktop version of Telegram messaging app, see https://telegram.org
|
||||
|
||||
Telegram Desktop is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
It is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
In addition, as a special exception, the copyright holders give permission
|
||||
to link the code of portions of this program with the OpenSSL library.
|
||||
|
||||
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
|
||||
Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
namespace Data {
|
||||
|
||||
class NotifySettingsValue;
|
||||
|
||||
class NotifySettings {
|
||||
public:
|
||||
NotifySettings();
|
||||
|
||||
enum class MuteChange {
|
||||
Ignore,
|
||||
Mute,
|
||||
Unmute,
|
||||
};
|
||||
enum class SilentPostsChange {
|
||||
Ignore,
|
||||
Silent,
|
||||
Notify,
|
||||
};
|
||||
|
||||
bool change(const MTPPeerNotifySettings &settings);
|
||||
bool change(
|
||||
MuteChange mute,
|
||||
SilentPostsChange silent,
|
||||
int muteForSeconds);
|
||||
TimeMs muteFinishesIn() const;
|
||||
bool settingsUnknown() const;
|
||||
bool silentPosts() const;
|
||||
MTPinputPeerNotifySettings serialize() const;
|
||||
|
||||
~NotifySettings();
|
||||
|
||||
private:
|
||||
bool _known = false;
|
||||
std::unique_ptr<NotifySettingsValue> _value;
|
||||
|
||||
};
|
||||
|
||||
} // namespace Data
|
Reference in New Issue
Block a user