mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Dashboard: Only include activities from enabled devices
This commit is contained in:
+5
-1
@@ -42,6 +42,7 @@ import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -52,6 +53,7 @@ import nodomain.freeyourgadget.gadgetbridge.activities.DashboardFragment;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.HeartRateUtils;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.charts.StepAnalysis;
|
||||
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
|
||||
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
|
||||
import nodomain.freeyourgadget.gadgetbridge.entities.BaseActivitySummary;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
|
||||
@@ -546,15 +548,17 @@ public class DashboardTodayWidget extends AbstractDashboardWidget {
|
||||
List<ActivitySession> stepSessions = new ArrayList<>();
|
||||
List<BaseActivitySummary> activitySummaries = null;
|
||||
try (DBHandler dbHandler = GBApplication.acquireDB()) {
|
||||
final List<Long> deviceIds = new LinkedList<>();
|
||||
for (GBDevice dev : devices) {
|
||||
if ((dashboardData.showAllDevices || dashboardData.showDeviceList.contains(dev.getAddress())) && dev.getDeviceCoordinator().supportsActivityTracking(dev)) {
|
||||
List<? extends ActivitySample> activitySamples = DashboardUtils.getAllSamples(dbHandler, dev, dashboardData);
|
||||
allActivitySamples.addAll(activitySamples);
|
||||
StepAnalysis stepAnalysis = new StepAnalysis();
|
||||
stepSessions.addAll(stepAnalysis.calculateStepSessions(activitySamples));
|
||||
deviceIds.add(DBHelper.getDevice(dev, dbHandler.getDaoSession()).getId());
|
||||
}
|
||||
}
|
||||
activitySummaries = DashboardUtils.getWorkoutSamples(dbHandler, dashboardData);
|
||||
activitySummaries = deviceIds.isEmpty() ? new ArrayList<>() : DashboardUtils.getWorkoutSamples(dbHandler, dashboardData, deviceIds);
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Could not retrieve activity amounts: ", e);
|
||||
}
|
||||
|
||||
@@ -235,10 +235,13 @@ public class DashboardUtils {
|
||||
return coordinator.getSampleProvider(device, db.getDaoSession());
|
||||
}
|
||||
|
||||
public static List<BaseActivitySummary> getWorkoutSamples(DBHandler db, DashboardFragment.DashboardData dashboardData) {
|
||||
public static List<BaseActivitySummary> getWorkoutSamples(DBHandler db,
|
||||
DashboardFragment.DashboardData dashboardData,
|
||||
List<Long> deviceIds) {
|
||||
return db.getDaoSession().getBaseActivitySummaryDao().queryBuilder().where(
|
||||
BaseActivitySummaryDao.Properties.StartTime.gt(new Date(dashboardData.timeFrom * 1000L)),
|
||||
BaseActivitySummaryDao.Properties.EndTime.lt(new Date(dashboardData.timeTo * 1000L))
|
||||
BaseActivitySummaryDao.Properties.EndTime.lt(new Date(dashboardData.timeTo * 1000L)),
|
||||
BaseActivitySummaryDao.Properties.DeviceId.in(deviceIds)
|
||||
).build().list();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user