mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-11-08 11:17:05 +01:00
Prevent query for devices that have activity card disabled
Even if the activity card was disabled, all devices would be queried for data. This slows down the UI when there are a lot of devices, especially if multiple of them have data and only a few have the card enabled.
This commit is contained in:
parent
dc1ffdafcd
commit
04237b7727
@ -46,6 +46,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||||
|
import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.activities.discovery.DiscoveryActivityV2;
|
import nodomain.freeyourgadget.gadgetbridge.activities.discovery.DiscoveryActivityV2;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.adapter.GBDeviceAdapterv2;
|
import nodomain.freeyourgadget.gadgetbridge.adapter.GBDeviceAdapterv2;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.database.DBAccess;
|
import nodomain.freeyourgadget.gadgetbridge.database.DBAccess;
|
||||||
@ -233,7 +234,8 @@ public class DevicesFragment extends Fragment {
|
|||||||
protected void doInBackground(DBHandler db) {
|
protected void doInBackground(DBHandler db) {
|
||||||
for (GBDevice gbDevice : deviceList) {
|
for (GBDevice gbDevice : deviceList) {
|
||||||
final DeviceCoordinator coordinator = gbDevice.getDeviceCoordinator();
|
final DeviceCoordinator coordinator = gbDevice.getDeviceCoordinator();
|
||||||
if (coordinator.supportsActivityTracking()) {
|
boolean showActivityCard = GBApplication.getDevicePrefs(gbDevice.getAddress()).getBoolean(DeviceSettingsPreferenceConst.PREFS_ACTIVITY_IN_DEVICE_CARD, true);
|
||||||
|
if (coordinator.supportsActivityTracking() && showActivityCard) {
|
||||||
long[] stepsAndSleepData = getSteps(gbDevice, db);
|
long[] stepsAndSleepData = getSteps(gbDevice, db);
|
||||||
deviceActivityHashMap.put(gbDevice.getAddress(), stepsAndSleepData);
|
deviceActivityHashMap.put(gbDevice.getAddress(), stepsAndSleepData);
|
||||||
}
|
}
|
||||||
|
@ -395,7 +395,7 @@ public class DashboardTodayWidget extends AbstractDashboardWidget {
|
|||||||
if (firstTimestamp == 0) firstTimestamp = sample.getTimestamp();
|
if (firstTimestamp == 0) firstTimestamp = sample.getTimestamp();
|
||||||
if (lastTimestamp == 0) lastTimestamp = sample.getTimestamp();
|
if (lastTimestamp == 0) lastTimestamp = sample.getTimestamp();
|
||||||
if ((sample.getHeartRate() < 10 || sample.getTimestamp() > lastTimestamp + dashboardData.hrIntervalSecs) && firstTimestamp != lastTimestamp) {
|
if ((sample.getHeartRate() < 10 || sample.getTimestamp() > lastTimestamp + dashboardData.hrIntervalSecs) && firstTimestamp != lastTimestamp) {
|
||||||
LOG.info("Registered worn session from " + firstTimestamp + " to " + lastTimestamp);
|
LOG.debug("Registered worn session from {} to {}", firstTimestamp, lastTimestamp);
|
||||||
addActivity(firstTimestamp, lastTimestamp, ActivityKind.TYPE_NOT_MEASURED);
|
addActivity(firstTimestamp, lastTimestamp, ActivityKind.TYPE_NOT_MEASURED);
|
||||||
if (sample.getHeartRate() < 10) {
|
if (sample.getHeartRate() < 10) {
|
||||||
firstTimestamp = 0;
|
firstTimestamp = 0;
|
||||||
@ -409,7 +409,7 @@ public class DashboardTodayWidget extends AbstractDashboardWidget {
|
|||||||
lastTimestamp = sample.getTimestamp();
|
lastTimestamp = sample.getTimestamp();
|
||||||
}
|
}
|
||||||
if (firstTimestamp != lastTimestamp) {
|
if (firstTimestamp != lastTimestamp) {
|
||||||
LOG.info("Registered worn session from " + firstTimestamp + " to " + lastTimestamp);
|
LOG.debug("Registered worn session from {} to {}", firstTimestamp, lastTimestamp);
|
||||||
addActivity(firstTimestamp, lastTimestamp, ActivityKind.TYPE_NOT_MEASURED);
|
addActivity(firstTimestamp, lastTimestamp, ActivityKind.TYPE_NOT_MEASURED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1316,6 +1316,13 @@ public class GBDeviceAdapterv2 extends ListAdapter<GBDevice, GBDeviceAdapterv2.V
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setActivityCard(ViewHolder holder, final GBDevice device, long[] dailyTotals) {
|
private void setActivityCard(ViewHolder holder, final GBDevice device, long[] dailyTotals) {
|
||||||
|
boolean showActivityCard = GBApplication.getDeviceSpecificSharedPrefs(device.getAddress()).getBoolean(DeviceSettingsPreferenceConst.PREFS_ACTIVITY_IN_DEVICE_CARD, true);
|
||||||
|
holder.cardViewActivityCardLayout.setVisibility(showActivityCard ? View.VISIBLE : View.GONE);
|
||||||
|
|
||||||
|
if (!showActivityCard) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int steps = (int) dailyTotals[0];
|
int steps = (int) dailyTotals[0];
|
||||||
int sleep = (int) dailyTotals[1];
|
int sleep = (int) dailyTotals[1];
|
||||||
ActivityUser activityUser = new ActivityUser();
|
ActivityUser activityUser = new ActivityUser();
|
||||||
@ -1336,8 +1343,6 @@ public class GBDeviceAdapterv2 extends ListAdapter<GBDevice, GBDeviceAdapterv2.V
|
|||||||
setUpChart(holder.SleepTimeChart);
|
setUpChart(holder.SleepTimeChart);
|
||||||
setChartsData(holder.SleepTimeChart, sleep, sleepGoalMinutes, context.getString(R.string.prefs_activity_in_device_card_sleep_title), String.format("%1s", getHM(sleep)), context);
|
setChartsData(holder.SleepTimeChart, sleep, sleepGoalMinutes, context.getString(R.string.prefs_activity_in_device_card_sleep_title), String.format("%1s", getHM(sleep)), context);
|
||||||
|
|
||||||
boolean showActivityCard = GBApplication.getDeviceSpecificSharedPrefs(device.getAddress()).getBoolean(DeviceSettingsPreferenceConst.PREFS_ACTIVITY_IN_DEVICE_CARD, true);
|
|
||||||
holder.cardViewActivityCardLayout.setVisibility(showActivityCard ? View.VISIBLE : View.GONE);
|
|
||||||
|
|
||||||
boolean showActivitySteps = GBApplication.getDeviceSpecificSharedPrefs(device.getAddress()).getBoolean(DeviceSettingsPreferenceConst.PREFS_ACTIVITY_IN_DEVICE_CARD_STEPS, true);
|
boolean showActivitySteps = GBApplication.getDeviceSpecificSharedPrefs(device.getAddress()).getBoolean(DeviceSettingsPreferenceConst.PREFS_ACTIVITY_IN_DEVICE_CARD_STEPS, true);
|
||||||
boolean showActivitySleep = GBApplication.getDeviceSpecificSharedPrefs(device.getAddress()).getBoolean(DeviceSettingsPreferenceConst.PREFS_ACTIVITY_IN_DEVICE_CARD_SLEEP, true);
|
boolean showActivitySleep = GBApplication.getDeviceSpecificSharedPrefs(device.getAddress()).getBoolean(DeviceSettingsPreferenceConst.PREFS_ACTIVITY_IN_DEVICE_CARD_SLEEP, true);
|
||||||
|
Loading…
Reference in New Issue
Block a user