mirror of
https://github.com/kotatogram/kotatogram-desktop
synced 2025-09-05 00:55:12 +00:00
Remove locally saved empty histories.
This commit is contained in:
@@ -517,7 +517,7 @@ enum { // Local Storage Keys
|
||||
lskUserSettings = 0x09, // no data
|
||||
lskRecentHashtagsAndBots = 0x0a, // no data
|
||||
lskStickersOld = 0x0b, // no data
|
||||
lskSavedPeers = 0x0c, // no data
|
||||
lskSavedPeersOld = 0x0c, // no data
|
||||
lskReportSpamStatuses = 0x0d, // no data
|
||||
lskSavedGifsOld = 0x0e, // no data
|
||||
lskSavedGifs = 0x0f, // no data
|
||||
@@ -686,7 +686,6 @@ bool NoTimeLimit(qint32 storedLimitValue) {
|
||||
|
||||
FileKey _exportSettingsKey = 0;
|
||||
|
||||
FileKey _savedPeersKey = 0;
|
||||
FileKey _langPackKey = 0;
|
||||
FileKey _languagesKey = 0;
|
||||
|
||||
@@ -2303,7 +2302,7 @@ ReadMapState _readMap(const QByteArray &pass) {
|
||||
quint64 installedStickersKey = 0, featuredStickersKey = 0, recentStickersKey = 0, favedStickersKey = 0, archivedStickersKey = 0;
|
||||
quint64 savedGifsKey = 0;
|
||||
quint64 backgroundKeyDay = 0, backgroundKeyNight = 0;
|
||||
quint64 userSettingsKey = 0, recentHashtagsAndBotsKey = 0, savedPeersKey = 0, exportSettingsKey = 0;
|
||||
quint64 userSettingsKey = 0, recentHashtagsAndBotsKey = 0, exportSettingsKey = 0;
|
||||
while (!map.stream.atEnd()) {
|
||||
quint32 keyType;
|
||||
map.stream >> keyType;
|
||||
@@ -2387,8 +2386,9 @@ ReadMapState _readMap(const QByteArray &pass) {
|
||||
case lskSavedGifs: {
|
||||
map.stream >> savedGifsKey;
|
||||
} break;
|
||||
case lskSavedPeers: {
|
||||
map.stream >> savedPeersKey;
|
||||
case lskSavedPeersOld: {
|
||||
quint64 key;
|
||||
map.stream >> key;
|
||||
} break;
|
||||
case lskExportSettings: {
|
||||
map.stream >> exportSettingsKey;
|
||||
@@ -2416,7 +2416,6 @@ ReadMapState _readMap(const QByteArray &pass) {
|
||||
_favedStickersKey = favedStickersKey;
|
||||
_archivedStickersKey = archivedStickersKey;
|
||||
_savedGifsKey = savedGifsKey;
|
||||
_savedPeersKey = savedPeersKey;
|
||||
_backgroundKeyDay = backgroundKeyDay;
|
||||
_backgroundKeyNight = backgroundKeyNight;
|
||||
_userSettingsKey = userSettingsKey;
|
||||
@@ -2520,7 +2519,6 @@ void _writeMap(WriteMapWhen when) {
|
||||
}
|
||||
if (_favedStickersKey) mapSize += sizeof(quint32) + sizeof(quint64);
|
||||
if (_savedGifsKey) mapSize += sizeof(quint32) + sizeof(quint64);
|
||||
if (_savedPeersKey) mapSize += sizeof(quint32) + sizeof(quint64);
|
||||
if (_backgroundKeyDay || _backgroundKeyNight) mapSize += sizeof(quint32) + sizeof(quint64) + sizeof(quint64);
|
||||
if (_userSettingsKey) mapSize += sizeof(quint32) + sizeof(quint64);
|
||||
if (_recentHashtagsAndBotsKey) mapSize += sizeof(quint32) + sizeof(quint64);
|
||||
@@ -2564,9 +2562,6 @@ void _writeMap(WriteMapWhen when) {
|
||||
if (_savedGifsKey) {
|
||||
mapData.stream << quint32(lskSavedGifs) << quint64(_savedGifsKey);
|
||||
}
|
||||
if (_savedPeersKey) {
|
||||
mapData.stream << quint32(lskSavedPeers) << quint64(_savedPeersKey);
|
||||
}
|
||||
if (_backgroundKeyDay || _backgroundKeyNight) {
|
||||
mapData.stream
|
||||
<< quint32(lskBackground)
|
||||
@@ -2843,7 +2838,7 @@ void reset() {
|
||||
_savedGifsKey = 0;
|
||||
_backgroundKeyDay = _backgroundKeyNight = 0;
|
||||
Window::Theme::Background()->reset();
|
||||
_userSettingsKey = _recentHashtagsAndBotsKey = _savedPeersKey = _exportSettingsKey = 0;
|
||||
_userSettingsKey = _recentHashtagsAndBotsKey = _exportSettingsKey = 0;
|
||||
_oldMapVersion = _oldSettingsVersion = 0;
|
||||
_cacheTotalSizeLimit = Database::Settings().totalSizeLimit;
|
||||
_cacheTotalTimeLimit = Database::Settings().totalTimeLimit;
|
||||
@@ -2892,7 +2887,6 @@ base::flat_set<QString> CollectGoodNames() {
|
||||
_backgroundKeyDay,
|
||||
_recentHashtagsAndBotsKey,
|
||||
_exportSettingsKey,
|
||||
_savedPeersKey,
|
||||
_trustedBotsKey
|
||||
};
|
||||
auto result = base::flat_set<QString>{ "map0", "map1" };
|
||||
@@ -4817,104 +4811,6 @@ Export::Settings ReadExportSettings() {
|
||||
: Export::Settings();
|
||||
}
|
||||
|
||||
void writeSavedPeers() {
|
||||
if (!_working()) return;
|
||||
|
||||
const SavedPeers &saved(cSavedPeers());
|
||||
if (saved.isEmpty()) {
|
||||
if (_savedPeersKey) {
|
||||
clearKey(_savedPeersKey);
|
||||
_savedPeersKey = 0;
|
||||
_mapChanged = true;
|
||||
}
|
||||
_writeMap();
|
||||
} else {
|
||||
if (!_savedPeersKey) {
|
||||
_savedPeersKey = genKey();
|
||||
_mapChanged = true;
|
||||
_writeMap(WriteMapWhen::Fast);
|
||||
}
|
||||
quint32 size = sizeof(quint32);
|
||||
for (SavedPeers::const_iterator i = saved.cbegin(); i != saved.cend(); ++i) {
|
||||
size += Serialize::peerSize(i.key()) + Serialize::dateTimeSize();
|
||||
}
|
||||
|
||||
EncryptedDescriptor data(size);
|
||||
data.stream << quint32(saved.size());
|
||||
for (SavedPeers::const_iterator i = saved.cbegin(); i != saved.cend(); ++i) {
|
||||
Serialize::writePeer(data.stream, i.key());
|
||||
data.stream << i.value();
|
||||
}
|
||||
|
||||
FileWriteDescriptor file(_savedPeersKey);
|
||||
file.writeEncrypted(data);
|
||||
}
|
||||
}
|
||||
|
||||
void readSavedPeers() {
|
||||
if (!_savedPeersKey) return;
|
||||
|
||||
FileReadDescriptor saved;
|
||||
if (!readEncryptedFile(saved, _savedPeersKey)) {
|
||||
clearKey(_savedPeersKey);
|
||||
_savedPeersKey = 0;
|
||||
_writeMap();
|
||||
return;
|
||||
}
|
||||
if (saved.version == 9011) { // broken dev version
|
||||
clearKey(_savedPeersKey);
|
||||
_savedPeersKey = 0;
|
||||
_writeMap();
|
||||
return;
|
||||
}
|
||||
|
||||
quint32 count = 0;
|
||||
saved.stream >> count;
|
||||
cRefSavedPeers().clear();
|
||||
cRefSavedPeersByTime().clear();
|
||||
QList<PeerData*> peers;
|
||||
peers.reserve(count);
|
||||
for (uint32 i = 0; i < count; ++i) {
|
||||
const auto peer = Serialize::readPeer(saved.version, saved.stream);
|
||||
if (!peer) break;
|
||||
|
||||
QDateTime t;
|
||||
saved.stream >> t;
|
||||
|
||||
cRefSavedPeers().insert(peer, t);
|
||||
cRefSavedPeersByTime().insert(t, peer);
|
||||
peers.push_back(peer);
|
||||
}
|
||||
|
||||
Auth().api().requestPeers(peers);
|
||||
}
|
||||
|
||||
void addSavedPeer(PeerData *peer, const QDateTime &position) {
|
||||
auto &savedPeers = cRefSavedPeers();
|
||||
auto i = savedPeers.find(peer);
|
||||
if (i == savedPeers.cend()) {
|
||||
savedPeers.insert(peer, position);
|
||||
} else if (i.value() != position) {
|
||||
cRefSavedPeersByTime().remove(i.value(), peer);
|
||||
i.value() = position;
|
||||
cRefSavedPeersByTime().insert(i.value(), peer);
|
||||
}
|
||||
writeSavedPeers();
|
||||
}
|
||||
|
||||
void removeSavedPeer(PeerData *peer) {
|
||||
auto &savedPeers = cRefSavedPeers();
|
||||
if (savedPeers.isEmpty()) return;
|
||||
|
||||
auto i = savedPeers.find(peer);
|
||||
if (i != savedPeers.cend()) {
|
||||
cRefSavedPeersByTime().remove(i.value(), peer);
|
||||
savedPeers.erase(i);
|
||||
|
||||
writeSavedPeers();
|
||||
}
|
||||
}
|
||||
|
||||
void writeReportSpamStatuses() {
|
||||
_writeReportSpamStatuses();
|
||||
}
|
||||
@@ -5073,10 +4969,6 @@ bool ClearManager::addTask(int task) {
|
||||
_recentHashtagsAndBotsKey = 0;
|
||||
_mapChanged = true;
|
||||
}
|
||||
if (_savedPeersKey) {
|
||||
_savedPeersKey = 0;
|
||||
_mapChanged = true;
|
||||
}
|
||||
_writeMap();
|
||||
} else {
|
||||
for (int32 i = 0, l = data->tasks.size(); i < l; ++i) {
|
||||
|
Reference in New Issue
Block a user