Added remembered list for common moderated groups to session settings.

This commit is contained in:
23rd
2025-12-31 09:02:20 +03:00
parent 6e04ad19d4
commit 490c07bfe0
2 changed files with 35 additions and 0 deletions
@@ -66,6 +66,8 @@ QByteArray SessionSettings::serialize() const {
+ Serialize::stringSize(auth.location);
}
size += sizeof(qint32); // _setupEmailState
size += sizeof(qint32) // _moderateCommonGroups size
+ (_moderateCommonGroups.size() * sizeof(quint64));
auto result = QByteArray();
result.reserve(size);
@@ -147,6 +149,10 @@ QByteArray SessionSettings::serialize() const {
<< auth.location;
}
stream << qint32(static_cast<int>(_setupEmailState));
stream << qint32(_moderateCommonGroups.size());
for (const auto &peerId : _moderateCommonGroups) {
stream << SerializePeerId(peerId);
}
}
Ensures(result.size() == size);
@@ -219,6 +225,7 @@ void SessionSettings::addFromSerialized(const QByteArray &serialized) {
base::flat_set<uint64> ratedTranscriptions;
std::vector<Data::UnreviewedAuth> unreviewed;
qint32 setupEmailState = 0;
std::vector<PeerId> moderateCommonGroups;
stream >> versionTag;
if (versionTag == kVersionTag) {
@@ -635,6 +642,23 @@ void SessionSettings::addFromSerialized(const QByteArray &serialized) {
if (!stream.atEnd()) {
stream >> setupEmailState;
}
if (!stream.atEnd()) {
auto count = qint32(0);
stream >> count;
if (stream.status() == QDataStream::Ok) {
for (auto i = 0; i != count; ++i) {
quint64 peerId;
stream >> peerId;
if (stream.status() != QDataStream::Ok) {
LOG(("App Error: "
"Bad data for SessionSettings::addFromSerialized()"
"with moderateCommonGroups"));
return;
}
moderateCommonGroups.emplace_back(DeserializePeerId(peerId));
}
}
}
if (stream.status() != QDataStream::Ok) {
LOG(("App Error: "
"Bad data for SessionSettings::addFromSerialized()"));
@@ -698,6 +722,8 @@ void SessionSettings::addFromSerialized(const QByteArray &serialized) {
break;
}
_moderateCommonGroups = std::move(moderateCommonGroups);
if (version < 2) {
app.setLastSeenWarningSeen(appLastSeenWarningSeen == 1);
for (const auto &[key, value] : appSoundOverrides) {
@@ -176,6 +176,13 @@ public:
void setSetupEmailState(Data::SetupEmailState state);
[[nodiscard]] Data::SetupEmailState setupEmailState() const;
void setModerateCommonGroups(std::vector<PeerId> groups) {
_moderateCommonGroups = std::move(groups);
}
[[nodiscard]] const std::vector<PeerId> &moderateCommonGroups() const {
return _moderateCommonGroups;
}
private:
static constexpr auto kDefaultSupportChatsLimitSlice = 7 * 24 * 60 * 60;
static constexpr auto kPhotoEditorHintMaxShowsCount = 5;
@@ -222,6 +229,8 @@ private:
Data::SetupEmailState _setupEmailState;
std::vector<PeerId> _moderateCommonGroups;
};
} // namespace Main