| 113 | } |
| 114 | |
| 115 | Data::LastseenStatus LastseenFromMTP( |
| 116 | const MTPUserStatus &status, |
| 117 | Data::LastseenStatus currentStatus) { |
| 118 | return status.match([](const MTPDuserStatusEmpty &data) { |
| 119 | return Data::LastseenStatus::LongAgo(); |
| 120 | }, [&](const MTPDuserStatusRecently &data) { |
| 121 | return currentStatus.isLocalOnlineValue() |
| 122 | ? Data::LastseenStatus::OnlineTill( |
| 123 | currentStatus.onlineTill(), |
| 124 | true, |
| 125 | data.is_by_me()) |
| 126 | : Data::LastseenStatus::Recently(data.is_by_me()); |
| 127 | }, [](const MTPDuserStatusLastWeek &data) { |
| 128 | return Data::LastseenStatus::WithinWeek(data.is_by_me()); |
| 129 | }, [](const MTPDuserStatusLastMonth &data) { |
| 130 | return Data::LastseenStatus::WithinMonth(data.is_by_me()); |
| 131 | }, [](const MTPDuserStatusOnline& data) { |
| 132 | return Data::LastseenStatus::OnlineTill(data.vexpires().v); |
| 133 | }, [](const MTPDuserStatusOffline &data) { |
| 134 | return Data::LastseenStatus::OnlineTill(data.vwas_online().v); |
| 135 | }); |
| 136 | } |
| 137 | |
| 138 | UserData::UserData(not_null<Data::Session*> owner, PeerId id) |
| 139 | : PeerData(owner, id) |
no test coverage detected