MCPcopy Create free account
hub / github.com/TDesktop-x64/tdesktop / readBackground

Function readBackground

Telegram/SourceFiles/storage/localstorage.cpp:656–771  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

654}
655
656bool readBackground() {
657 FileReadDescriptor bg;
658 auto &backgroundKey = Window::Theme::IsNightMode()
659 ? _backgroundKeyNight
660 : _backgroundKeyDay;
661 if (!ReadEncryptedFile(bg, backgroundKey, _basePath, SettingsKey)) {
662 if (backgroundKey) {
663 ClearKey(backgroundKey, _basePath);
664 backgroundKey = 0;
665 writeSettings();
666 }
667 return false;
668 }
669
670 qint32 legacyId = 0;
671 bg.stream >> legacyId;
672 const auto paper = [&] {
673 if (legacyId == kWallPaperLegacySerializeTagId) {
674 quint64 id = 0;
675 quint64 accessHash = 0;
676 quint32 flags = 0;
677 QString slug;
678 bg.stream
679 >> id
680 >> accessHash
681 >> flags
682 >> slug;
683 return Data::WallPaper::FromLegacySerialized(
684 id,
685 accessHash,
686 flags,
687 slug);
688 } else if (legacyId == kWallPaperSerializeTagId) {
689 QByteArray serialized;
690 bg.stream >> serialized;
691 return Data::WallPaper::FromSerialized(serialized);
692 } else {
693 return Data::WallPaper::FromLegacyId(legacyId);
694 }
695 }();
696 if (bg.stream.status() != QDataStream::Ok || !paper) {
697 return false;
698 }
699
700 QByteArray imageData;
701 bg.stream >> imageData;
702 const auto isOldEmptyImage = (bg.stream.status() != QDataStream::Ok);
703 if (isOldEmptyImage
704 || Data::IsLegacy1DefaultWallPaper(*paper)
705 || (Data::IsLegacy2DefaultWallPaper(*paper) && bg.version < 1000000)
706 || (Data::IsLegacy3DefaultWallPaper(*paper) && bg.version < 1000000)
707 || (Data::IsLegacy4DefaultWallPaper(*paper) && bg.version < 1000000)
708 || Data::IsDefaultWallPaper(*paper)) {
709 _backgroundCanWrite = false;
710 if (isOldEmptyImage || bg.version < 1000000) {
711 Window::Theme::Background()->set(Data::DefaultWallPaper());
712 } else {
713 Window::Theme::Background()->set(*paper);

Callers 2

initialReadMethod · 0.85
reapplyWithNightModeMethod · 0.85

Calls 15

ReadEncryptedFileFunction · 0.85
ClearKeyFunction · 0.85
writeSettingsFunction · 0.85
IsDefaultWallPaperFunction · 0.85
DefaultWallPaperFunction · 0.85
IsThemeWallPaperFunction · 0.85
backgroundColorsMethod · 0.80
IsNightModeFunction · 0.50

Tested by

no test coverage detected