From 2ab53bfaa84b44836cd55f91aa0445f53b76e873 Mon Sep 17 00:00:00 2001 From: ameerhossein Date: Tue, 13 Feb 2024 22:27:10 +0330 Subject: [PATCH] Fix stuck connection when another VPN app connects --- .../java/org/bepass/oblivion/OblivionVpnService.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/bepass/oblivion/OblivionVpnService.java b/app/src/main/java/org/bepass/oblivion/OblivionVpnService.java index c29a06f1..737d64f8 100644 --- a/app/src/main/java/org/bepass/oblivion/OblivionVpnService.java +++ b/app/src/main/java/org/bepass/oblivion/OblivionVpnService.java @@ -284,6 +284,14 @@ public void onChange(ConnectionState state) { @Override public IBinder onBind(Intent intent) { + String action = intent != null ? intent.getAction() : null; + /* + If we override onBind, we never receive onRevoke. + return superclass onBind when action is SERVICE_INTERFACE to receive onRevoke lifecycle call. + */ + if (action != null && action.equals(VpnService.SERVICE_INTERFACE)) { + return super.onBind(intent); + } return serviceMessenger.getBinder(); } @@ -339,7 +347,7 @@ public void onDestroy() { @Override public void onRevoke() { - super.onRevoke(); + stopVpn(); } private void runVpn() {