1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2025-02-03 13:37:32 +01:00

Garmin: Throttle notification updates on fit parsing

This commit is contained in:
José Rebelo 2024-05-04 20:51:47 +01:00 committed by Daniele Gobbetti
parent 6f5f944235
commit 904c995a3e

View File

@ -520,14 +520,19 @@ public class GarminSupport extends AbstractBTLEDeviceSupport implements ICommuni
final FitAsyncProcessor fitAsyncProcessor = new FitAsyncProcessor(getContext(), getDevice()); final FitAsyncProcessor fitAsyncProcessor = new FitAsyncProcessor(getContext(), getDevice());
final List <File> filesToProcessClone = new ArrayList<>(filesToProcess); final List <File> filesToProcessClone = new ArrayList<>(filesToProcess);
filesToProcess.clear(); filesToProcess.clear();
final long[] lastNotificationUpdateTs = new long[]{System.currentTimeMillis()};
fitAsyncProcessor.process(filesToProcessClone, new FitAsyncProcessor.Callback() { fitAsyncProcessor.process(filesToProcessClone, new FitAsyncProcessor.Callback() {
@Override @Override
public void onProgress(final int i) { public void onProgress(final int i) {
GB.updateTransferNotification( final long now = System.currentTimeMillis();
"Parsing fit files", "File " + i + " of " + filesToProcessClone.size(), if (now - lastNotificationUpdateTs[0] > 1500L) {
true, lastNotificationUpdateTs[0] = now;
(i * 100) / filesToProcessClone.size(), getContext() GB.updateTransferNotification(
); "Parsing fit files", "File " + i + " of " + filesToProcessClone.size(),
true,
(i * 100) / filesToProcessClone.size(), getContext()
);
}
} }
@Override @Override
@ -791,15 +796,20 @@ public class GarminSupport extends AbstractBTLEDeviceSupport implements ICommuni
GB.toast(getContext(), "Error deleting activity data", Toast.LENGTH_LONG, GB.ERROR, e); GB.toast(getContext(), "Error deleting activity data", Toast.LENGTH_LONG, GB.ERROR, e);
} }
final long[] lastNotificationUpdateTs = new long[]{System.currentTimeMillis()};
final FitAsyncProcessor fitAsyncProcessor = new FitAsyncProcessor(getContext(), getDevice()); final FitAsyncProcessor fitAsyncProcessor = new FitAsyncProcessor(getContext(), getDevice());
fitAsyncProcessor.process(Arrays.asList(fitFiles), new FitAsyncProcessor.Callback() { fitAsyncProcessor.process(Arrays.asList(fitFiles), new FitAsyncProcessor.Callback() {
@Override @Override
public void onProgress(final int i) { public void onProgress(final int i) {
GB.updateTransferNotification( final long now = System.currentTimeMillis();
"Parsing fit files", "File " + i + " of " + fitFiles.length, if (now - lastNotificationUpdateTs[0] > 1500L) {
true, lastNotificationUpdateTs[0] = now;
(i * 100) / fitFiles.length, getContext() GB.updateTransferNotification(
); "Parsing fit files", "File " + i + " of " + fitFiles.length,
true,
(i * 100) / fitFiles.length, getContext()
);
}
} }
@Override @Override