From 667d5fdfc4ca8b2010062c66ee6c45f2e65e5619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Tue, 6 Jan 2026 21:19:16 +0000 Subject: [PATCH] Health Connect: Add manual sync debug trigger --- .../debug/HealthConnectDebugFragment.kt | 17 +++++++++++++++++ .../HealthConnectPreferencesActivity.java | 2 +- .../xml/debug_preferences_health_connect.xml | 7 +++++++ .../main/res/xml/health_connect_preferences.xml | 2 +- 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/debug/HealthConnectDebugFragment.kt b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/debug/HealthConnectDebugFragment.kt index 125d0c4736..2a5cf9b2ca 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/debug/HealthConnectDebugFragment.kt +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/debug/HealthConnectDebugFragment.kt @@ -4,13 +4,18 @@ import android.app.DatePickerDialog import android.os.Bundle import android.widget.DatePicker import android.widget.Toast +import androidx.work.ExistingWorkPolicy +import androidx.work.OneTimeWorkRequest +import androidx.work.WorkManager import com.google.android.material.dialog.MaterialAlertDialogBuilder import nodomain.freeyourgadget.gadgetbridge.GBApplication import nodomain.freeyourgadget.gadgetbridge.R +import nodomain.freeyourgadget.gadgetbridge.activities.preferences.HealthConnectPreferencesActivity.HealthConnectPreferencesFragment import nodomain.freeyourgadget.gadgetbridge.database.DBHelper import nodomain.freeyourgadget.gadgetbridge.entities.HealthConnectSyncStateDao import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils import nodomain.freeyourgadget.gadgetbridge.util.GB +import nodomain.freeyourgadget.gadgetbridge.util.healthconnect.HealthConnectSyncWorker import org.slf4j.Logger import org.slf4j.LoggerFactory import java.time.Instant @@ -25,6 +30,17 @@ class HealthConnectDebugFragment : AbstractDebugFragment() { private fun setupPreferences() { setPreferencesFromResource(R.xml.debug_preferences_health_connect, null) + onClick(PREF_DEBUG_MANUAL_SYNC_TRIGGER) { + val syncRequest = OneTimeWorkRequest.Builder(HealthConnectSyncWorker::class.java) + .addTag(HealthConnectPreferencesFragment.HEALTH_CONNECT_SYNC_WORKER_TAG) + .build() + WorkManager.getInstance(requireContext()).enqueueUniqueWork( + "HealthConnectSyncWorker_Debug", + ExistingWorkPolicy.KEEP, + syncRequest + ) + } + onClick(PREF_DEBUG_RESET_HC_SYNC_STATE) { MaterialAlertDialogBuilder(requireActivity()) .setCancelable(true) @@ -108,6 +124,7 @@ class HealthConnectDebugFragment : AbstractDebugFragment() { companion object { private val LOG: Logger = LoggerFactory.getLogger(HealthConnectDebugFragment::class.java) + private const val PREF_DEBUG_MANUAL_SYNC_TRIGGER = "pref_debug_manual_sync_trigger" private const val PREF_DEBUG_RESET_HC_SYNC_STATE = "pref_debug_reset_hc_sync_state" } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/preferences/HealthConnectPreferencesActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/preferences/HealthConnectPreferencesActivity.java index 471d5f0511..f51dd49887 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/preferences/HealthConnectPreferencesActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/preferences/HealthConnectPreferencesActivity.java @@ -78,7 +78,7 @@ public class HealthConnectPreferencesActivity extends AbstractSettingsActivityV2 public static class HealthConnectPreferencesFragment extends AbstractPreferenceFragment implements HealthConnectInitialSyncDialog.InitialSyncDialogListener { protected static final Logger LOG = LoggerFactory.getLogger(HealthConnectPreferencesFragment.class); - private static final String HEALTH_CONNECT_SYNC_WORKER_TAG = "HealthConnectSyncWorker"; + public static final String HEALTH_CONNECT_SYNC_WORKER_TAG = "HealthConnectSyncWorker"; private static final String HEALTH_CONNECT_ONETIME_WORK_NAME = "HealthConnectSyncWorker_OneTime"; private static final String HC_DEVICE_SELECT_DIALOG_TAG = "HC_DEVICE_SELECT_DIALOG"; private static final String HC_INITIAL_SYNC_DIALOG_TAG = "HC_INITIAL_SYNC_DIALOG_TAG"; diff --git a/app/src/main/res/xml/debug_preferences_health_connect.xml b/app/src/main/res/xml/debug_preferences_health_connect.xml index 0621b8bcdc..803a645b2f 100644 --- a/app/src/main/res/xml/debug_preferences_health_connect.xml +++ b/app/src/main/res/xml/debug_preferences_health_connect.xml @@ -4,6 +4,13 @@ + +