diff --git a/bramble-android/src/main/java/org/briarproject/bramble/network/AndroidNetworkManager.java b/bramble-android/src/main/java/org/briarproject/bramble/network/AndroidNetworkManager.java index 02a6d38e2..11694ba92 100644 --- a/bramble-android/src/main/java/org/briarproject/bramble/network/AndroidNetworkManager.java +++ b/bramble-android/src/main/java/org/briarproject/bramble/network/AndroidNetworkManager.java @@ -14,6 +14,7 @@ import android.net.NetworkInfo; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; +import org.briarproject.bramble.api.Cancellable; import org.briarproject.bramble.api.event.EventBus; import org.briarproject.bramble.api.event.EventExecutor; import org.briarproject.bramble.api.lifecycle.Service; @@ -23,7 +24,6 @@ import org.briarproject.bramble.api.network.event.NetworkStatusEvent; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.bramble.api.system.TaskScheduler; -import org.briarproject.bramble.api.system.TaskScheduler.Cancellable; import java.net.Inet4Address; import java.net.InetAddress; diff --git a/bramble-android/src/main/java/org/briarproject/bramble/system/AndroidTaskScheduler.java b/bramble-android/src/main/java/org/briarproject/bramble/system/AndroidTaskScheduler.java index fd0a89c13..c426f7d6a 100644 --- a/bramble-android/src/main/java/org/briarproject/bramble/system/AndroidTaskScheduler.java +++ b/bramble-android/src/main/java/org/briarproject/bramble/system/AndroidTaskScheduler.java @@ -8,6 +8,7 @@ import android.content.Intent; import android.os.Process; import android.os.SystemClock; +import org.briarproject.bramble.api.Cancellable; import org.briarproject.bramble.api.lifecycle.Service; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.system.AlarmListener; diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/Cancellable.java b/bramble-api/src/main/java/org/briarproject/bramble/api/Cancellable.java new file mode 100644 index 000000000..286539b0f --- /dev/null +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/Cancellable.java @@ -0,0 +1,6 @@ +package org.briarproject.bramble.api; + +public interface Cancellable { + + void cancel(); +} diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/system/TaskScheduler.java b/bramble-api/src/main/java/org/briarproject/bramble/api/system/TaskScheduler.java index de1b85e8a..8c3b599b2 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/system/TaskScheduler.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/system/TaskScheduler.java @@ -1,5 +1,6 @@ package org.briarproject.bramble.api.system; +import org.briarproject.bramble.api.Cancellable; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import java.util.concurrent.Executor; @@ -16,6 +17,8 @@ public interface TaskScheduler { *
* If the platform supports wake locks, a wake lock will be held while * submitting and running the task. + * + * @return A {@link Cancellable} for cancelling the task. */ Cancellable schedule(Runnable task, Executor executor, long delay, TimeUnit unit); @@ -27,17 +30,11 @@ public interface TaskScheduler { *
* If the platform supports wake locks, a wake lock will be held while * submitting and running the task. + * + * @return A {@link Cancellable} for cancelling all future executions of + * the task. */ Cancellable scheduleWithFixedDelay(Runnable task, Executor executor, long delay, long interval, TimeUnit unit); - interface Cancellable { - - /** - * Cancels the task if it has not already started running. If the task - * is {@link #scheduleWithFixedDelay(Runnable, Executor, long, long, TimeUnit) periodic}, - * all future executions of the task are cancelled. - */ - void cancel(); - } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/io/TimeoutMonitorImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/io/TimeoutMonitorImpl.java index d080cabeb..144fe1056 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/io/TimeoutMonitorImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/io/TimeoutMonitorImpl.java @@ -1,10 +1,10 @@ package org.briarproject.bramble.io; +import org.briarproject.bramble.api.Cancellable; import org.briarproject.bramble.api.io.TimeoutMonitor; import org.briarproject.bramble.api.lifecycle.IoExecutor; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.TaskScheduler; -import org.briarproject.bramble.api.system.TaskScheduler.Cancellable; import org.briarproject.bramble.api.system.Wakeful; import java.io.IOException; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/PollerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/PollerImpl.java index 4148d15f2..873a19e7a 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/PollerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/PollerImpl.java @@ -1,5 +1,6 @@ package org.briarproject.bramble.plugin; +import org.briarproject.bramble.api.Cancellable; import org.briarproject.bramble.api.Pair; import org.briarproject.bramble.api.connection.ConnectionManager; import org.briarproject.bramble.api.connection.ConnectionRegistry; @@ -27,7 +28,6 @@ import org.briarproject.bramble.api.properties.TransportProperties; import org.briarproject.bramble.api.properties.TransportPropertyManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.TaskScheduler; -import org.briarproject.bramble.api.system.TaskScheduler.Cancellable; import org.briarproject.bramble.api.system.Wakeful; import org.briarproject.bramble.api.system.WakefulIoExecutor; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/rendezvous/RendezvousPollerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/rendezvous/RendezvousPollerImpl.java index 769aae93f..54cc2ef08 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/rendezvous/RendezvousPollerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/rendezvous/RendezvousPollerImpl.java @@ -1,6 +1,7 @@ package org.briarproject.bramble.rendezvous; import org.briarproject.bramble.PoliteExecutor; +import org.briarproject.bramble.api.Cancellable; import org.briarproject.bramble.api.Pair; import org.briarproject.bramble.api.connection.ConnectionManager; import org.briarproject.bramble.api.contact.PendingContact; @@ -42,7 +43,6 @@ import org.briarproject.bramble.api.rendezvous.event.RendezvousConnectionOpenedE import org.briarproject.bramble.api.rendezvous.event.RendezvousPollEvent; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.TaskScheduler; -import org.briarproject.bramble.api.system.TaskScheduler.Cancellable; import org.briarproject.bramble.api.system.Wakeful; import java.security.GeneralSecurityException; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/system/TaskSchedulerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/system/TaskSchedulerImpl.java index ef797a28c..363821537 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/system/TaskSchedulerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/system/TaskSchedulerImpl.java @@ -1,5 +1,6 @@ package org.briarproject.bramble.system; +import org.briarproject.bramble.api.Cancellable; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.system.TaskScheduler; diff --git a/bramble-core/src/test/java/org/briarproject/bramble/plugin/PollerImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/plugin/PollerImplTest.java index 82f58436b..b06539c59 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/plugin/PollerImplTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/plugin/PollerImplTest.java @@ -1,5 +1,6 @@ package org.briarproject.bramble.plugin; +import org.briarproject.bramble.api.Cancellable; import org.briarproject.bramble.api.connection.ConnectionManager; import org.briarproject.bramble.api.connection.ConnectionRegistry; import org.briarproject.bramble.api.contact.ContactId; @@ -20,7 +21,6 @@ import org.briarproject.bramble.api.properties.TransportProperties; import org.briarproject.bramble.api.properties.TransportPropertyManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.TaskScheduler; -import org.briarproject.bramble.api.system.TaskScheduler.Cancellable; import org.briarproject.bramble.test.BrambleMockTestCase; import org.briarproject.bramble.test.ImmediateExecutor; import org.briarproject.bramble.test.RunAction; diff --git a/bramble-core/src/test/java/org/briarproject/bramble/rendezvous/RendezvousPollerImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/rendezvous/RendezvousPollerImplTest.java index a2a51146a..76c7bda5a 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/rendezvous/RendezvousPollerImplTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/rendezvous/RendezvousPollerImplTest.java @@ -1,5 +1,6 @@ package org.briarproject.bramble.rendezvous; +import org.briarproject.bramble.api.Cancellable; import org.briarproject.bramble.api.connection.ConnectionManager; import org.briarproject.bramble.api.contact.PendingContact; import org.briarproject.bramble.api.contact.PendingContactState; @@ -27,7 +28,6 @@ import org.briarproject.bramble.api.rendezvous.event.RendezvousConnectionOpenedE import org.briarproject.bramble.api.rendezvous.event.RendezvousPollEvent; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.TaskScheduler; -import org.briarproject.bramble.api.system.TaskScheduler.Cancellable; import org.briarproject.bramble.test.BrambleMockTestCase; import org.briarproject.bramble.test.CaptureArgumentAction; import org.briarproject.bramble.test.DbExpectations; diff --git a/bramble-core/src/test/java/org/briarproject/bramble/system/TestTaskScheduler.java b/bramble-core/src/test/java/org/briarproject/bramble/system/TestTaskScheduler.java index 55d753e22..541ba57a9 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/system/TestTaskScheduler.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/system/TestTaskScheduler.java @@ -1,5 +1,6 @@ package org.briarproject.bramble.system; +import org.briarproject.bramble.api.Cancellable; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.TaskScheduler;