mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-08-31 22:46:10 +00:00
New profile cover actions by buttons done.
Two new types of Observers: image loaded and async file dialog.
This commit is contained in:
@@ -97,6 +97,10 @@ void ApiWrap::resolveMessageDatas() {
|
||||
}
|
||||
}
|
||||
|
||||
void ApiWrap::updatesReceived(const MTPUpdates &updates) {
|
||||
App::main()->sentUpdatesReceived(updates);
|
||||
}
|
||||
|
||||
void ApiWrap::gotMessageDatas(ChannelData *channel, const MTPmessages_Messages &msgs, mtpRequestId req) {
|
||||
switch (msgs.type()) {
|
||||
case mtpc_messages_messages: {
|
||||
@@ -679,6 +683,45 @@ void ApiWrap::requestStickerSets() {
|
||||
}
|
||||
}
|
||||
|
||||
void ApiWrap::joinChannel(ChannelData *channel) {
|
||||
if (channel->amIn()) {
|
||||
channelAmInUpdated(channel);
|
||||
} else if (!_channelAmInRequests.contains(channel)) {
|
||||
auto requestId = MTP::send(MTPchannels_JoinChannel(channel->inputChannel), rpcDone(&ApiWrap::channelAmInDone, channel), rpcFail(&ApiWrap::channelAmInFail, channel));
|
||||
_channelAmInRequests.insert(channel, requestId);
|
||||
}
|
||||
}
|
||||
|
||||
void ApiWrap::leaveChannel(ChannelData *channel) {
|
||||
if (!channel->amIn()) {
|
||||
channelAmInUpdated(channel);
|
||||
} else if (!_channelAmInRequests.contains(channel)) {
|
||||
auto requestId = MTP::send(MTPchannels_LeaveChannel(channel->inputChannel), rpcDone(&ApiWrap::channelAmInDone, channel), rpcFail(&ApiWrap::channelAmInFail, channel));
|
||||
_channelAmInRequests.insert(channel, requestId);
|
||||
}
|
||||
}
|
||||
|
||||
void ApiWrap::channelAmInUpdated(ChannelData *channel) {
|
||||
Notify::PeerUpdate update(channel);
|
||||
update.flags |= Notify::PeerUpdateFlag::ChannelAmIn;
|
||||
Notify::peerUpdatedDelayed(update);
|
||||
Notify::peerUpdatedSendDelayed();
|
||||
}
|
||||
|
||||
void ApiWrap::channelAmInDone(ChannelData *channel, const MTPUpdates &updates) {
|
||||
_channelAmInRequests.remove(channel);
|
||||
|
||||
updatesReceived(updates);
|
||||
}
|
||||
|
||||
bool ApiWrap::channelAmInFail(ChannelData *channel, const RPCError &error) {
|
||||
if (MTP::isDefaultHandledError(error)) return false;
|
||||
|
||||
_channelAmInRequests.remove(channel);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void ApiWrap::gotStickerSet(uint64 setId, const MTPmessages_StickerSet &result) {
|
||||
_stickerSetRequests.remove(setId);
|
||||
|
||||
|
Reference in New Issue
Block a user