2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-09-05 00:46:08 +00:00

Use emoji/stickers/gifs slider in EmojiPan.

Also rename EmojiTabs to EmojiSections.
This commit is contained in:
John Preston
2017-03-28 15:30:38 +03:00
parent 3d846fcd49
commit 1540f6f528
23 changed files with 1466 additions and 1424 deletions

View File

@@ -24,11 +24,60 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
#include "storage/file_download.h"
#include "window/notifications_manager.h"
QByteArray AuthSessionData::serialize() const {
auto size = sizeof(qint32) * 2;
auto result = QByteArray();
result.reserve(size);
{
QBuffer buffer(&result);
if (!buffer.open(QIODevice::WriteOnly)) {
Unexpected("Can't open data for AuthSessionData::serialize()");
}
QDataStream stream(&buffer);
stream.setVersion(QDataStream::Qt_5_1);
stream << static_cast<qint32>(_variables.emojiPanTab);
stream << qint32(_variables.lastSeenWarningSeen ? 1 : 0);
}
return result;
}
void AuthSessionData::constructFromSerialized(const QByteArray &serialized) {
if (serialized.isEmpty()) {
return;
}
auto readonly = serialized;
QBuffer buffer(&readonly);
if (!buffer.open(QIODevice::ReadOnly)) {
Unexpected("Can't open data for DcOptions::constructFromSerialized()");
}
QDataStream stream(&buffer);
stream.setVersion(QDataStream::Qt_5_1);
qint32 emojiPanTab = static_cast<qint32>(EmojiPanTabType::Emoji);
qint32 lastSeenWarningSeen = 0;
stream >> emojiPanTab;
stream >> lastSeenWarningSeen;
if (stream.status() != QDataStream::Ok) {
LOG(("App Error: Bad data for AuthSessionData::constructFromSerialized()"));
return;
}
auto uncheckedTab = static_cast<EmojiPanTabType>(emojiPanTab);
switch (uncheckedTab) {
case EmojiPanTabType::Emoji:
case EmojiPanTabType::Stickers:
case EmojiPanTabType::Gifs: _variables.emojiPanTab = uncheckedTab; break;
}
_variables.lastSeenWarningSeen = (lastSeenWarningSeen == 1);
}
AuthSession::AuthSession(UserId userId)
: _userId(userId)
, _downloader(std::make_unique<Storage::Downloader>())
, _notifications(std::make_unique<Window::Notifications::System>(this)) {
t_assert(_userId != 0);
Expects(_userId != 0);
}
bool AuthSession::Exists() {