diff options
author | Samuel Holland <samuel@sholland.org> | 2018-01-07 00:41:47 -0600 |
---|---|---|
committer | Samuel Holland <samuel@sholland.org> | 2018-01-07 00:41:47 -0600 |
commit | e70b242c016709c41a09114996806fbdef30dd80 (patch) | |
tree | 008b081cce1873dec39c1472fb15aaed0bf3d4d7 /app/src/main/java/com/wireguard/android/model/TunnelManager.java | |
parent | TunnelListFragment: Name a CompletionStage what it is (diff) | |
download | wireguard-android-e70b242c016709c41a09114996806fbdef30dd80.tar.xz wireguard-android-e70b242c016709c41a09114996806fbdef30dd80.zip |
model: Remove confusing uses of completion chaining
This looks like the builder pattern, but isn't.
Signed-off-by: Samuel Holland <samuel@sholland.org>
Diffstat (limited to 'app/src/main/java/com/wireguard/android/model/TunnelManager.java')
-rw-r--r-- | app/src/main/java/com/wireguard/android/model/TunnelManager.java | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/app/src/main/java/com/wireguard/android/model/TunnelManager.java b/app/src/main/java/com/wireguard/android/model/TunnelManager.java index e802c152..beed16fe 100644 --- a/app/src/main/java/com/wireguard/android/model/TunnelManager.java +++ b/app/src/main/java/com/wireguard/android/model/TunnelManager.java @@ -85,18 +85,24 @@ public final class TunnelManager { } CompletionStage<Config> getTunnelConfig(final Tunnel tunnel) { - return asyncWorker.supplyAsync(() -> configStore.load(tunnel.getName())) - .thenApply(tunnel::onConfigChanged); + final CompletionStage<Config> completion = + asyncWorker.supplyAsync(() -> configStore.load(tunnel.getName())); + completion.thenAccept(tunnel::onConfigChanged); + return completion; } CompletionStage<State> getTunnelState(final Tunnel tunnel) { - return asyncWorker.supplyAsync(() -> backend.getState(tunnel)) - .thenApply(tunnel::onStateChanged); + final CompletionStage<State> completion = + asyncWorker.supplyAsync(() -> backend.getState(tunnel)); + completion.thenAccept(tunnel::onStateChanged); + return completion; } CompletionStage<Statistics> getTunnelStatistics(final Tunnel tunnel) { - return asyncWorker.supplyAsync(() -> backend.getStatistics(tunnel)) - .thenApply(tunnel::onStatisticsChanged); + final CompletionStage<Statistics> completion = + asyncWorker.supplyAsync(() -> backend.getStatistics(tunnel)); + completion.thenAccept(tunnel::onStatisticsChanged); + return completion; } public ObservableKeyedList<String, Tunnel> getTunnels() { @@ -136,14 +142,18 @@ public final class TunnelManager { } CompletionStage<Config> setTunnelConfig(final Tunnel tunnel, final Config config) { - return asyncWorker.supplyAsync(() -> { + final CompletionStage<Config> completion = asyncWorker.supplyAsync(() -> { final Config appliedConfig = backend.applyConfig(tunnel, config); return configStore.save(tunnel.getName(), appliedConfig); - }).thenApply(tunnel::onConfigChanged); + }); + completion.thenAccept(tunnel::onConfigChanged); + return completion; } CompletionStage<State> setTunnelState(final Tunnel tunnel, final State state) { - return asyncWorker.supplyAsync(() -> backend.setState(tunnel, state)) - .thenApply(tunnel::onStateChanged); + final CompletionStage<State> completion = + asyncWorker.supplyAsync(() -> backend.setState(tunnel, state)); + completion.thenAccept(tunnel::onStateChanged); + return completion; } } |