diff options
author | fupduck <fupduck@riseup.net> | 2018-02-08 06:05:16 -0800 |
---|---|---|
committer | fupduck <fupduck@riseup.net> | 2018-02-08 06:05:16 -0800 |
commit | c3d157c91ecc3a177efc4e089904684511e7710d (patch) | |
tree | d664bf391e0fe2abda37cd78947703b186515c14 /app/src/main/java/se/leap/bitmaskclient/eip/EIP.java | |
parent | e33292227eeac35194f9217edd5a243c688cb560 (diff) | |
parent | 6cd010c331cfd98078e657bb8d1107651daca49e (diff) |
Merge branch '#8829_notification_handling_new_layout' into '0.9.8'
#8829 notification handling new layout
See merge request leap/bitmask_android!37
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/eip/EIP.java')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/eip/EIP.java | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java b/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java index eca5b881..23b4f2de 100644 --- a/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java +++ b/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java @@ -27,6 +27,8 @@ import android.util.Log; import org.json.JSONException; import org.json.JSONObject; +import java.lang.ref.WeakReference; + import de.blinkt.openvpn.LaunchVPN; import se.leap.bitmaskclient.OnBootReceiver; @@ -57,12 +59,12 @@ public final class EIP extends IntentService { public final static String TAG = EIP.class.getSimpleName(); public final static String SERVICE_API_PATH = "config/eip-service.json"; - private static ResultReceiver mReceiver; - private static SharedPreferences preferences; + private WeakReference<ResultReceiver> mReceiverRef = new WeakReference<>(null); + private SharedPreferences preferences; - private static JSONObject eipDefinition; + private JSONObject eipDefinition; private GatewaysManager gatewaysManager = new GatewaysManager(); - private static Gateway gateway; + private Gateway gateway; public EIP() { super(TAG); @@ -80,7 +82,9 @@ public final class EIP extends IntentService { @Override protected void onHandleIntent(Intent intent) { String action = intent.getAction(); - mReceiver = intent.getParcelableExtra(EIP_RECEIVER); + if (intent.getParcelableExtra(EIP_RECEIVER) != null) { + mReceiverRef = new WeakReference<>((ResultReceiver) intent.getParcelableExtra(EIP_RECEIVER)); + } if (action == null) { return; @@ -241,10 +245,10 @@ public final class EIP extends IntentService { } private void tellToReceiver(String action, int resultCode) { - if (mReceiver != null) { - Bundle resultData = new Bundle(); - resultData.putString(EIP_REQUEST, action); - mReceiver.send(resultCode, resultData); + Bundle resultData = new Bundle(); + resultData.putString(EIP_REQUEST, action); + if (mReceiverRef.get() != null) { + mReceiverRef.get().send(resultCode, resultData); } } } |