From f4ae325d0249793117d0ac3ae8e851483a01b8fe Mon Sep 17 00:00:00 2001 From: geeksville Date: Sun, 7 Jun 2020 17:27:19 -0700 Subject: [PATCH] Partial for #36: Don't start service at boot if unbonded --- .../geeksville/mesh/service/MeshService.kt | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt index 97d0b22ee..8bd83f06d 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt @@ -86,14 +86,20 @@ class MeshService : Service(), Logging { * https://issuetracker.google.com/issues/76112072#comment56 */ fun startLater(context: Context) { - info("Received boot complete announcement, starting mesh service in one minute") - val delayRequest = OneTimeWorkRequestBuilder() - .setInitialDelay(1, TimeUnit.MINUTES) - .setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 1, TimeUnit.MINUTES) - .addTag("startLater") - .build() + // No point in even starting the service if the user doesn't have a device bonded - WorkManager.getInstance(context).enqueue(delayRequest) + if (RadioInterfaceService.getBondedDeviceAddress(context) != null) { + info("Received boot complete announcement, starting mesh service in one minute") + val delayRequest = OneTimeWorkRequestBuilder() + .setInitialDelay(1, TimeUnit.MINUTES) + .setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 1, TimeUnit.MINUTES) + .addTag("startLater") + .build() + + WorkManager.getInstance(context).enqueue(delayRequest) + } else { + debug("Booted: but not starting mesh service - we are unbonded") + } } val intent = Intent().apply {