Skip to content

Commit eccd352

Browse files
authored
Merge pull request #1087 from deXol/develop
[BLE] Fetch notes on user change
2 parents 177183d + 5c9a9cc commit eccd352

3 files changed

Lines changed: 27 additions & 2 deletions

File tree

src/MPDevice.cpp

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4110,6 +4110,7 @@ void MPDevice::getChangeNumbers()
41104110
if (isBLE())
41114111
{
41124112
bleImpl->fetchDataFiles();
4113+
bleImpl->fetchNotes();
41134114
}
41144115
else
41154116
{
@@ -5034,7 +5035,7 @@ void MPDevice::deleteDataNodesAndLeave(QStringList services, QStringList notes,
50345035

50355036
/* Generate save packets */
50365037
AsyncJobs* saveJobs = new AsyncJobs("Starting save operations...", this);
5037-
connect(saveJobs, &AsyncJobs::finished, [this, services, cb](const QByteArray &data)
5038+
connect(saveJobs, &AsyncJobs::finished, [this, services, cb, notes](const QByteArray &data)
50385039
{
50395040
Q_UNUSED(data);
50405041
exitMemMgmtMode(true);
@@ -5048,6 +5049,15 @@ void MPDevice::deleteDataNodesAndLeave(QStringList services, QStringList notes,
50485049
removeFileFromCache(services[i]);
50495050
}
50505051

5052+
if (isBLE() && !notes.isEmpty())
5053+
{
5054+
/* If a note was deleted fetch notes again,
5055+
* fetchNotesLater ensures this happens only
5056+
* after exitMMM run.
5057+
*/
5058+
bleImpl->fetchNotesLater();
5059+
}
5060+
50515061
return;
50525062
});
50535063
connect(saveJobs, &AsyncJobs::failed, [this, cb](AsyncJob *failedJob)
@@ -6212,6 +6222,10 @@ void MPDevice::startImportFileMerging(const MPDeviceProgressCb &cbProgress, Mess
62126222
filesCache.save(list);
62136223
filesCache.setDbChangeNumber(importedDataDbChangeNumber);
62146224
emit filesCacheChanged();
6225+
if (isBLE())
6226+
{
6227+
emit bleImpl->notesFetched();
6228+
}
62156229

62166230
cleanImportedVars();
62176231
exitMemMgmtMode(false);
@@ -6297,6 +6311,11 @@ void MPDevice::startImportFileMerging(const MPDeviceProgressCb &cbProgress, Mess
62976311
filesCache.setDbChangeNumber(importedDataDbChangeNumber);
62986312
emit filesCacheChanged();
62996313

6314+
if (isBLE())
6315+
{
6316+
emit bleImpl->notesFetched();
6317+
}
6318+
63006319
cleanImportedVars();
63016320
exitMemMgmtMode(false);
63026321
qInfo() << "Merge operations succeeded!";

src/MPDeviceBleImpl.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ void MPDeviceBleImpl::deleteFile(QString file, bool isNote, std::function<void (
290290

291291
void MPDeviceBleImpl::fetchNotes()
292292
{
293-
if (mpDev->get_status() != Common::Unlocked)
293+
if (mpDev->get_status() != Common::Unlocked && mpDev->get_status() != Common::MMMMode)
294294
{
295295
if (AppDaemon::isDebugDev())
296296
{
@@ -338,6 +338,11 @@ void MPDeviceBleImpl::fetchNotes(AsyncJobs *jobs, QByteArray addr)
338338
));
339339
}
340340

341+
void MPDeviceBleImpl::fetchNotesLater()
342+
{
343+
createAndAddCustomJob("Fetch notes", [this](){fetchNotes();});
344+
}
345+
341346
void MPDeviceBleImpl::getNoteNode(QString note, std::function<void (bool, QString, QString, QByteArray)> cb)
342347
{
343348
if (note.isEmpty())

src/MPDeviceBleImpl.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ class MPDeviceBleImpl: public QObject
7070

7171
void fetchNotes();
7272
void fetchNotes(AsyncJobs *jobs, QByteArray addr);
73+
void fetchNotesLater();
7374
QList<QString> getNotes() const { return m_notes; }
7475
void getNoteNode(QString note, std::function<void(bool, QString, QString, QByteArray)> cb);
7576

0 commit comments

Comments
 (0)