From b14507dd900104ef2a5b6abe0d50878f171d4627 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Fri, 21 Apr 2017 13:54:51 +0200 Subject: [PATCH] android: Make sure every listener at the VPN state service is only registered once We register when the service connects but also in onStart() (as we unregister in onStop() to avoid updates when not shown). So this could theoretically cause the listener to get registered twice if the service is connected before onStart() is called (it seems it usually isn't). --- .../android/logic/VpnStateService.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/VpnStateService.java b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/VpnStateService.java index e35277d8c..01c1452af 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/VpnStateService.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/VpnStateService.java @@ -15,16 +15,6 @@ package org.strongswan.android.logic; -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.Callable; - -import org.strongswan.android.data.VpnProfile; -import org.strongswan.android.logic.imc.ImcState; -import org.strongswan.android.logic.imc.RemediationInstruction; - import android.app.Service; import android.content.Context; import android.content.Intent; @@ -32,9 +22,19 @@ import android.os.Binder; import android.os.Handler; import android.os.IBinder; +import org.strongswan.android.data.VpnProfile; +import org.strongswan.android.logic.imc.ImcState; +import org.strongswan.android.logic.imc.RemediationInstruction; + +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.concurrent.Callable; + public class VpnStateService extends Service { - private final List mListeners = new ArrayList(); + private final HashSet mListeners = new HashSet(); private final IBinder mBinder = new LocalBinder(); private long mConnectionID = 0; private Handler mHandler;