Fixed updating number of sessions after terminating any of them.

This commit is contained in:
23rd 2021-02-17 01:25:57 +03:00
parent bff3291631
commit c3c1759f3c
2 changed files with 17 additions and 7 deletions

View File

@ -128,9 +128,19 @@ void Authorizations::requestTerminate(
const auto send = [&](auto request) {
_api.request(
std::move(request)
).done(
std::move(done)
).fail(
).done([=, done = std::move(done)](const MTPBool &result) {
done(result);
if (mtpIsTrue(result)) {
if (hash) {
_list.erase(
ranges::remove(_list, *hash, &Entry::hash),
end(_list));
} else {
_list.clear();
}
_listChanges.fire({});
}
}).fail(
std::move(fail)
).send();
};

View File

@ -262,13 +262,13 @@ void SessionsContent::terminateOne(uint64 hash) {
const auto weak = Ui::MakeWeak(this);
auto callback = [=] {
auto done = crl::guard(weak, [=](const MTPBool &result) {
if (mtpIsFalse(result)) {
return;
}
_inner->terminatingOne(hash, false);
const auto getHash = [](const Entry &entry) {
return entry.hash;
};
const auto removeByHash = [&](std::vector<Entry> &list) {
list.erase(
ranges::remove(list, hash, getHash),
ranges::remove(list, hash, &Entry::hash),
end(list));
};
removeByHash(_data.incomplete);