Added geolocation support to poll answer media data layer.

This commit is contained in:
23rd
2026-03-25 12:18:57 +03:00
parent 5f60eb53ff
commit 42eaddfaba
3 changed files with 42 additions and 2 deletions
+25
View File
@@ -374,6 +374,13 @@ MTPInputMedia PollMediaToMTP(const PollMedia &media) {
MTP_int(0),
MTP_int(0),
MTPstring());
} else if (media.geo) {
return MTP_inputMediaGeoPoint(
MTP_inputGeoPoint(
MTP_flags(0),
MTP_double(media.geo->lat()),
MTP_double(media.geo->lon()),
MTPint())); // accuracy_radius
}
return MTPInputMedia();
}
@@ -396,6 +403,16 @@ PollMedia PollMediaFromMTP(
}, [](const auto &) {
});
}
}, [&](const MTPDmessageMediaGeo &data) {
data.vgeo().match([&](const MTPDgeoPoint &point) {
result.geo = Data::LocationPoint(point);
}, [](const MTPDgeoPointEmpty &) {
});
}, [&](const MTPDmessageMediaVenue &data) {
data.vgeo().match([&](const MTPDgeoPoint &point) {
result.geo = Data::LocationPoint(point);
}, [](const MTPDgeoPointEmpty &) {
});
}, [](const auto &) {
});
return result;
@@ -415,6 +432,14 @@ PollMedia PollMediaFromInputMTP(
result.document = owner->document(document.vid().v);
}, [](const auto &) {
});
}, [&](const MTPDinputMediaGeoPoint &data) {
data.vgeo_point().match([&](const MTPDinputGeoPoint &point) {
result.geo.emplace(
point.vlat().v,
point.vlong().v,
Data::LocationPoint::NoAccessHash);
}, [](const auto &) {
});
}, [](const auto &) {
});
return result;