mirror of
https://github.com/kotatogram/kotatogram-desktop
synced 2025-08-31 22:55:11 +00:00
Fix refreshing of file references
This commit is contained in:
@@ -3947,6 +3947,7 @@ void ApiWrap::forwardMessagesUnquoted(
|
|||||||
&& error.type().startsWith(qstr("FILE_REFERENCE_"))) {
|
&& error.type().startsWith(qstr("FILE_REFERENCE_"))) {
|
||||||
auto refreshRequests = mediaRefs->size();
|
auto refreshRequests = mediaRefs->size();
|
||||||
auto index = 0;
|
auto index = 0;
|
||||||
|
auto wasUpdated = false;
|
||||||
for (auto i = fromIter, e = toIter; i != e; i++) {
|
for (auto i = fromIter, e = toIter; i != e; i++) {
|
||||||
const auto item = *i;
|
const auto item = *i;
|
||||||
const auto media = item->media();
|
const auto media = item->media();
|
||||||
@@ -3955,17 +3956,21 @@ void ApiWrap::forwardMessagesUnquoted(
|
|||||||
: Data::FileOrigin();
|
: Data::FileOrigin();
|
||||||
const auto usedFileReference = mediaRefs->value(index);
|
const auto usedFileReference = mediaRefs->value(index);
|
||||||
|
|
||||||
refreshFileReference(origin, [=, &refreshRequests](const auto &result) {
|
refreshFileReference(origin, [=, &refreshRequests, &wasUpdated](const auto &result) {
|
||||||
if (refreshRequests > 0) {
|
|
||||||
refreshRequests--;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const auto currentMediaReference = media->photo()
|
const auto currentMediaReference = media->photo()
|
||||||
? media->photo()->fileReference()
|
? media->photo()->fileReference()
|
||||||
: media->document()->fileReference();
|
: media->document()->fileReference();
|
||||||
|
|
||||||
if (currentMediaReference != usedFileReference) {
|
if (currentMediaReference != usedFileReference) {
|
||||||
|
wasUpdated = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (refreshRequests > 0) {
|
||||||
|
refreshRequests--;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (wasUpdated) {
|
||||||
repeatRequest(repeatRequest);
|
repeatRequest(repeatRequest);
|
||||||
} else {
|
} else {
|
||||||
sendMessageFail(error, peer);
|
sendMessageFail(error, peer);
|
||||||
|
Reference in New Issue
Block a user