mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Dashboard: Make widget filters more explicit
This commit is contained in:
+1
-8
@@ -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<GBDevice> getSupportedDevices(final DashboardFragment.DashboardData dashboardData) {
|
||||
return GBApplication.app().getDeviceManager().getDevices()
|
||||
|
||||
+6
@@ -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();
|
||||
|
||||
+6
@@ -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()));
|
||||
|
||||
+6
@@ -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);
|
||||
|
||||
+6
@@ -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();
|
||||
|
||||
+5
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user