mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Don't use MTP for PeerData::isSelf.
This commit is contained in:
parent
8592326a3c
commit
afcebb136c
6 changed files with 31 additions and 15 deletions
|
@ -795,6 +795,13 @@ QString PeerData::userName() const {
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool PeerData::isSelf() const {
|
||||||
|
if (const auto user = asUser()) {
|
||||||
|
return (user->flags() & UserDataFlag::Self);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool PeerData::isVerified() const {
|
bool PeerData::isVerified() const {
|
||||||
if (const auto user = asUser()) {
|
if (const auto user = asUser()) {
|
||||||
return user->isVerified();
|
return user->isVerified();
|
||||||
|
|
|
@ -164,9 +164,7 @@ public:
|
||||||
[[nodiscard]] bool isChannel() const {
|
[[nodiscard]] bool isChannel() const {
|
||||||
return peerIsChannel(id);
|
return peerIsChannel(id);
|
||||||
}
|
}
|
||||||
[[nodiscard]] bool isSelf() const {
|
[[nodiscard]] bool isSelf() const;
|
||||||
return (input.type() == mtpc_inputPeerSelf);
|
|
||||||
}
|
|
||||||
[[nodiscard]] bool isVerified() const;
|
[[nodiscard]] bool isVerified() const;
|
||||||
[[nodiscard]] bool isScam() const;
|
[[nodiscard]] bool isScam() const;
|
||||||
[[nodiscard]] bool isFake() const;
|
[[nodiscard]] bool isFake() const;
|
||||||
|
|
|
@ -25,7 +25,8 @@ using UpdateFlag = Data::PeerUpdate::Flag;
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
UserData::UserData(not_null<Data::Session*> owner, PeerId id)
|
UserData::UserData(not_null<Data::Session*> owner, PeerId id)
|
||||||
: PeerData(owner, id) {
|
: PeerData(owner, id)
|
||||||
|
, _flags((id == owner->session().userPeerId()) ? Flag::Self : Flag(0)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UserData::canShareThisContact() const {
|
bool UserData::canShareThisContact() const {
|
||||||
|
@ -173,6 +174,19 @@ void UserData::setAccessHash(uint64 accessHash) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UserData::setFlags(UserDataFlags which) {
|
||||||
|
_flags.set((flags() & UserDataFlag::Self)
|
||||||
|
| (which & ~UserDataFlag::Self));
|
||||||
|
}
|
||||||
|
|
||||||
|
void UserData::addFlags(UserDataFlags which) {
|
||||||
|
_flags.add(which & ~UserDataFlag::Self);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UserData::removeFlags(UserDataFlags which) {
|
||||||
|
_flags.remove(which & ~UserDataFlag::Self);
|
||||||
|
}
|
||||||
|
|
||||||
void UserData::setCallsStatus(CallsStatus callsStatus) {
|
void UserData::setCallsStatus(CallsStatus callsStatus) {
|
||||||
if (callsStatus != _callsStatus) {
|
if (callsStatus != _callsStatus) {
|
||||||
_callsStatus = callsStatus;
|
_callsStatus = callsStatus;
|
||||||
|
|
|
@ -37,6 +37,7 @@ enum class UserDataFlag {
|
||||||
Support = (1 << 10),
|
Support = (1 << 10),
|
||||||
CanPinMessages = (1 << 11),
|
CanPinMessages = (1 << 11),
|
||||||
DiscardMinPhoto = (1 << 12),
|
DiscardMinPhoto = (1 << 12),
|
||||||
|
Self = (1 << 13),
|
||||||
};
|
};
|
||||||
inline constexpr bool is_flag_type(UserDataFlag) { return true; };
|
inline constexpr bool is_flag_type(UserDataFlag) { return true; };
|
||||||
using UserDataFlags = base::flags<UserDataFlag>;
|
using UserDataFlags = base::flags<UserDataFlag>;
|
||||||
|
@ -68,21 +69,15 @@ public:
|
||||||
}
|
}
|
||||||
void setAccessHash(uint64 accessHash);
|
void setAccessHash(uint64 accessHash);
|
||||||
|
|
||||||
void setFlags(UserDataFlags which) {
|
|
||||||
_flags.set(which);
|
|
||||||
}
|
|
||||||
void addFlags(UserDataFlags which) {
|
|
||||||
_flags.add(which);
|
|
||||||
}
|
|
||||||
void removeFlags(UserDataFlags which) {
|
|
||||||
_flags.remove(which);
|
|
||||||
}
|
|
||||||
auto flags() const {
|
auto flags() const {
|
||||||
return _flags.current();
|
return _flags.current();
|
||||||
}
|
}
|
||||||
auto flagsValue() const {
|
auto flagsValue() const {
|
||||||
return _flags.value();
|
return _flags.value();
|
||||||
}
|
}
|
||||||
|
void setFlags(UserDataFlags which);
|
||||||
|
void addFlags(UserDataFlags which);
|
||||||
|
void removeFlags(UserDataFlags which);
|
||||||
|
|
||||||
[[nodiscard]] bool isVerified() const {
|
[[nodiscard]] bool isVerified() const {
|
||||||
return flags() & UserDataFlag::Verified;
|
return flags() & UserDataFlag::Verified;
|
||||||
|
|
|
@ -78,6 +78,7 @@ Session::Session(
|
||||||
, _uploader(std::make_unique<Storage::Uploader>(_api.get()))
|
, _uploader(std::make_unique<Storage::Uploader>(_api.get()))
|
||||||
, _storage(std::make_unique<Storage::Facade>())
|
, _storage(std::make_unique<Storage::Facade>())
|
||||||
, _data(std::make_unique<Data::Session>(this))
|
, _data(std::make_unique<Data::Session>(this))
|
||||||
|
, _userId(user.c_user().vid())
|
||||||
, _user(_data->processUser(user))
|
, _user(_data->processUser(user))
|
||||||
, _emojiStickersPack(std::make_unique<Stickers::EmojiPack>(this))
|
, _emojiStickersPack(std::make_unique<Stickers::EmojiPack>(this))
|
||||||
, _diceStickersPacks(std::make_unique<Stickers::DicePacks>(this))
|
, _diceStickersPacks(std::make_unique<Stickers::DicePacks>(this))
|
||||||
|
@ -213,11 +214,11 @@ uint64 Session::uniqueId() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
UserId Session::userId() const {
|
UserId Session::userId() const {
|
||||||
return peerToUser(_user->id);
|
return _userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
PeerId Session::userPeerId() const {
|
PeerId Session::userPeerId() const {
|
||||||
return _user->id;
|
return _userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Session::validateSelf(UserId id) {
|
bool Session::validateSelf(UserId id) {
|
||||||
|
|
|
@ -179,6 +179,7 @@ private:
|
||||||
|
|
||||||
// _data depends on _downloader / _uploader.
|
// _data depends on _downloader / _uploader.
|
||||||
const std::unique_ptr<Data::Session> _data;
|
const std::unique_ptr<Data::Session> _data;
|
||||||
|
const UserId _userId;
|
||||||
const not_null<UserData*> _user;
|
const not_null<UserData*> _user;
|
||||||
|
|
||||||
// _emojiStickersPack depends on _data.
|
// _emojiStickersPack depends on _data.
|
||||||
|
|
Loading…
Add table
Reference in a new issue