mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-15 21:57:10 +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();
|
||||
}
|
||||
|
||||
bool PeerData::isSelf() const {
|
||||
if (const auto user = asUser()) {
|
||||
return (user->flags() & UserDataFlag::Self);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool PeerData::isVerified() const {
|
||||
if (const auto user = asUser()) {
|
||||
return user->isVerified();
|
||||
|
|
|
@ -164,9 +164,7 @@ public:
|
|||
[[nodiscard]] bool isChannel() const {
|
||||
return peerIsChannel(id);
|
||||
}
|
||||
[[nodiscard]] bool isSelf() const {
|
||||
return (input.type() == mtpc_inputPeerSelf);
|
||||
}
|
||||
[[nodiscard]] bool isSelf() const;
|
||||
[[nodiscard]] bool isVerified() const;
|
||||
[[nodiscard]] bool isScam() const;
|
||||
[[nodiscard]] bool isFake() const;
|
||||
|
|
|
@ -25,7 +25,8 @@ using UpdateFlag = Data::PeerUpdate::Flag;
|
|||
} // namespace
|
||||
|
||||
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 {
|
||||
|
@ -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) {
|
||||
if (callsStatus != _callsStatus) {
|
||||
_callsStatus = callsStatus;
|
||||
|
|
|
@ -37,6 +37,7 @@ enum class UserDataFlag {
|
|||
Support = (1 << 10),
|
||||
CanPinMessages = (1 << 11),
|
||||
DiscardMinPhoto = (1 << 12),
|
||||
Self = (1 << 13),
|
||||
};
|
||||
inline constexpr bool is_flag_type(UserDataFlag) { return true; };
|
||||
using UserDataFlags = base::flags<UserDataFlag>;
|
||||
|
@ -68,21 +69,15 @@ public:
|
|||
}
|
||||
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 {
|
||||
return _flags.current();
|
||||
}
|
||||
auto flagsValue() const {
|
||||
return _flags.value();
|
||||
}
|
||||
void setFlags(UserDataFlags which);
|
||||
void addFlags(UserDataFlags which);
|
||||
void removeFlags(UserDataFlags which);
|
||||
|
||||
[[nodiscard]] bool isVerified() const {
|
||||
return flags() & UserDataFlag::Verified;
|
||||
|
|
|
@ -78,6 +78,7 @@ Session::Session(
|
|||
, _uploader(std::make_unique<Storage::Uploader>(_api.get()))
|
||||
, _storage(std::make_unique<Storage::Facade>())
|
||||
, _data(std::make_unique<Data::Session>(this))
|
||||
, _userId(user.c_user().vid())
|
||||
, _user(_data->processUser(user))
|
||||
, _emojiStickersPack(std::make_unique<Stickers::EmojiPack>(this))
|
||||
, _diceStickersPacks(std::make_unique<Stickers::DicePacks>(this))
|
||||
|
@ -213,11 +214,11 @@ uint64 Session::uniqueId() const {
|
|||
}
|
||||
|
||||
UserId Session::userId() const {
|
||||
return peerToUser(_user->id);
|
||||
return _userId;
|
||||
}
|
||||
|
||||
PeerId Session::userPeerId() const {
|
||||
return _user->id;
|
||||
return _userId;
|
||||
}
|
||||
|
||||
bool Session::validateSelf(UserId id) {
|
||||
|
|
|
@ -179,6 +179,7 @@ private:
|
|||
|
||||
// _data depends on _downloader / _uploader.
|
||||
const std::unique_ptr<Data::Session> _data;
|
||||
const UserId _userId;
|
||||
const not_null<UserData*> _user;
|
||||
|
||||
// _emojiStickersPack depends on _data.
|
||||
|
|
Loading…
Add table
Reference in a new issue