diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/AbstractDashboardWidget.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/AbstractDashboardWidget.java index 792bf390a3..780f93f802 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/AbstractDashboardWidget.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/AbstractDashboardWidget.java @@ -28,9 +28,6 @@ import androidx.fragment.app.Fragment; import com.google.android.material.dialog.MaterialAlertDialogBuilder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.util.List; import java.util.function.Consumer; import java.util.stream.Collectors; @@ -43,8 +40,6 @@ import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.util.GB; public abstract class AbstractDashboardWidget extends Fragment { - private static final Logger LOG = LoggerFactory.getLogger(AbstractDashboardWidget.class); - protected static String ARG_DASHBOARD_DATA = "dashboard_widget_argument_data"; protected DashboardFragment.DashboardData dashboardData; @@ -75,9 +70,7 @@ public abstract class AbstractDashboardWidget extends Fragment { protected abstract void fillData(); - protected boolean isSupportedBy(final GBDevice device) { - return device.getDeviceCoordinator().supportsActivityTracking(device); - } + protected abstract boolean isSupportedBy(final GBDevice device); protected List getSupportedDevices(final DashboardFragment.DashboardData dashboardData) { return GBApplication.app().getDeviceManager().getDevices() diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardActiveTimeWidget.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardActiveTimeWidget.java index ebeaac5c31..484e0ca62d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardActiveTimeWidget.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardActiveTimeWidget.java @@ -22,6 +22,7 @@ import java.util.Locale; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.DashboardFragment; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; /** * A simple {@link AbstractDashboardWidget} subclass. @@ -48,6 +49,11 @@ public class DashboardActiveTimeWidget extends AbstractGaugeWidget { return fragment; } + @Override + protected boolean isSupportedBy(final GBDevice device) { + return device.getDeviceCoordinator().supportsStepCounter(device); + } + @Override protected void populateData(final DashboardFragment.DashboardData dashboardData) { dashboardData.getActiveMinutesTotal(); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardDistanceWidget.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardDistanceWidget.java index 0a32cbb342..7e15bbd4c3 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardDistanceWidget.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardDistanceWidget.java @@ -20,6 +20,7 @@ import android.os.Bundle; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.DashboardFragment; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.util.FormatUtils; /** @@ -53,6 +54,11 @@ public class DashboardDistanceWidget extends AbstractGaugeWidget { dashboardData.getDistanceGoalFactor(); } + @Override + protected boolean isSupportedBy(final GBDevice device) { + return device.getDeviceCoordinator().supportsStepCounter(device); + } + @Override protected void draw(final DashboardFragment.DashboardData dashboardData) { setText(FormatUtils.getFormattedDistanceLabel(dashboardData.getDistanceTotal())); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardGoalsWidget.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardGoalsWidget.java index 1b857e24ce..a09948178f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardGoalsWidget.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardGoalsWidget.java @@ -38,6 +38,7 @@ import org.slf4j.LoggerFactory; import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.DashboardFragment; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.util.Prefs; /** @@ -69,6 +70,11 @@ public class DashboardGoalsWidget extends AbstractDashboardWidget { return fragment; } + @Override + protected boolean isSupportedBy(final GBDevice device) { + return device.getDeviceCoordinator().supportsActivityTracking(device); + } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { goalsView = inflater.inflate(R.layout.dashboard_widget_goals, container, false); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardStepsWidget.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardStepsWidget.java index d86e1e3164..12ae26a0bb 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardStepsWidget.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardStepsWidget.java @@ -20,6 +20,7 @@ import android.os.Bundle; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.DashboardFragment; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; /** * A simple {@link AbstractDashboardWidget} subclass. @@ -46,6 +47,11 @@ public class DashboardStepsWidget extends AbstractGaugeWidget { return fragment; } + @Override + protected boolean isSupportedBy(final GBDevice device) { + return device.getDeviceCoordinator().supportsStepCounter(device); + } + @Override protected void populateData(final DashboardFragment.DashboardData dashboardData) { dashboardData.getStepsTotal(); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardTodayWidget.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardTodayWidget.java index b41b2868cf..61ae981450 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardTodayWidget.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/dashboard/DashboardTodayWidget.java @@ -93,6 +93,11 @@ public class DashboardTodayWidget extends AbstractDashboardWidget { return fragment; } + @Override + protected boolean isSupportedBy(final GBDevice device) { + return device.getDeviceCoordinator().supportsActivityTracking(device); + } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { todayView = inflater.inflate(R.layout.dashboard_widget_today, container, false); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DashboardUtils.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DashboardUtils.java index 22821ecf1c..f2cda5c7e0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DashboardUtils.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DashboardUtils.java @@ -54,7 +54,7 @@ public class DashboardUtils { int totalSteps = 0; try (DBHandler dbHandler = GBApplication.acquireDB()) { for (GBDevice dev : devices) { - if ((dashboardData.showAllDevices || dashboardData.showDeviceList.contains(dev.getAddress())) && dev.getDeviceCoordinator().supportsActivityTracking(dev)) { + if ((dashboardData.showAllDevices || dashboardData.showDeviceList.contains(dev.getAddress())) && dev.getDeviceCoordinator().supportsStepCounter(dev)) { totalSteps += (int) getDailyTotals(dev, dbHandler, dashboardData.timeTo).getSteps(); } } @@ -123,7 +123,7 @@ public class DashboardUtils { long totalSleepMinutes = 0; try (DBHandler dbHandler = GBApplication.acquireDB()) { for (GBDevice dev : devices) { - if ((dashboardData.showAllDevices || dashboardData.showDeviceList.contains(dev.getAddress())) && dev.getDeviceCoordinator().supportsActivityTracking(dev)) { + if ((dashboardData.showAllDevices || dashboardData.showDeviceList.contains(dev.getAddress())) && dev.getDeviceCoordinator().supportsSleepMeasurement(dev)) { totalSleepMinutes += getSleep(dev, dbHandler, dashboardData.timeTo); } } @@ -150,7 +150,7 @@ public class DashboardUtils { long totalDistanceCm = 0; try (DBHandler dbHandler = GBApplication.acquireDB()) { for (GBDevice dev : devices) { - if ((dashboardData.showAllDevices || dashboardData.showDeviceList.contains(dev.getAddress())) && dev.getDeviceCoordinator().supportsActivityTracking(dev)) { + if ((dashboardData.showAllDevices || dashboardData.showDeviceList.contains(dev.getAddress())) && dev.getDeviceCoordinator().supportsStepCounter(dev)) { final DailyTotals dailyTotals = getDailyTotals(dev, dbHandler, dashboardData.timeTo); if (dailyTotals.getSteps() > 0 && dailyTotals.getDistance() > 0) { totalDistanceCm += dailyTotals.getDistance(); @@ -188,7 +188,7 @@ public class DashboardUtils { long totalActiveMinutes = 0; try (DBHandler dbHandler = GBApplication.acquireDB()) { for (GBDevice dev : devices) { - if ((dashboardData.showAllDevices || dashboardData.showDeviceList.contains(dev.getAddress())) && dev.getDeviceCoordinator().supportsActivityTracking(dev)) { + if ((dashboardData.showAllDevices || dashboardData.showDeviceList.contains(dev.getAddress())) && dev.getDeviceCoordinator().supportsStepCounter(dev)) { totalActiveMinutes += getActiveMinutes(dev, dbHandler, dashboardData); } }