Przeglądaj źródła

WG and OpenVPN connection completed on Widgets

Khubaib 1 rok temu
rodzic
commit
2ea4e4e05a

+ 15 - 10
app/src/main/java/com/vpn/fastestvpnservice/utils/VPNConnectionsUtil.kt

@@ -180,6 +180,10 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
         /*Connect UDP,TCP*/
         App.connection_status = App.CONNECTION_STATE_CONNECTING
         homeViewModel.setConnectState(App.CONNECTING)
+
+        val widgetIntent = Intent(context, SimpleAppWidget::class.java)
+        widgetIntent.action = SimpleAppWidget.ACTION_CONNECTING_VPN
+        context.sendBroadcast(widgetIntent)
         Log.d("ServerNotResponding", "startTcpUDP -> CONNECTING")
 
 //        val widgetIntent = Intent(context, SimpleAppWidget::class.java)
@@ -546,25 +550,26 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
     fun countDownTimer() {
         countDownTimer = object : CountDownTimer(32000, 1000) {
             override fun onTick(millisUntilFinished: Long) {
-                if (App.connection_status == App.CONNECTION_STATE_CONNECTED
-                    || App.connection_status == App.CONNECTION_STATE_CONNECTED_2) {
+                val connectState = basePreferenceHelper.getConnectState()
+                if (connectState == App.CONNECTED) {
                     countDownTimer!!.cancel()
 
-//                    val widgetIntent = Intent(context, SimpleAppWidget::class.java)
-//                    widgetIntent.action = SimpleAppWidget.ACTION_CONNECT_VPN
-//                    context.sendBroadcast(widgetIntent)
+                    val widgetIntent = Intent(context, SimpleAppWidget::class.java)
+                    widgetIntent.action = SimpleAppWidget.ACTION_CONNECT_VPN
+                    context.sendBroadcast(widgetIntent)
                 }
-                else if (App.connection_status == App.CONNECTION_STATE_DISCONNECTED) {
+                else if (connectState == App.DISCONNECTED) {
                     countDownTimer!!.cancel()
 
-//                    val widgetIntent = Intent(context, SimpleAppWidget::class.java)
-//                    widgetIntent.action = SimpleAppWidget.ACTION_DISCONNECT_VPN
-//                    context.sendBroadcast(widgetIntent)
+                    val widgetIntent = Intent(context, SimpleAppWidget::class.java)
+                    widgetIntent.action = SimpleAppWidget.ACTION_DISCONNECT_VPN
+                    context.sendBroadcast(widgetIntent)
                 }
             }
 
             override fun onFinish() {
-                if (App.connection_status == App.CONNECTION_STATE_CONNECTING) {
+                val connectState = basePreferenceHelper.getConnectState()
+                if (connectState == App.CONNECTING) {
                     UIHelper.showToast(R.string.server_not_responding)
                     stopVpn()
                 }

+ 10 - 3
app/src/main/java/com/vpn/fastestvpnservice/utils/WireGuardService.kt

@@ -181,6 +181,8 @@ class WireGuardService : Service(), VpnStatus.StateListener {
         App.connection_status = App.CONNECTION_STATE_CONNECTING
         MainActivity.vpnConnectionCallBacks?.onVpnConnecting()
 
+        basePreferenceHelper.setConnectState(App.CONNECTING)
+
         val widgetIntent = Intent(applicationContext, SimpleAppWidget::class.java)
         widgetIntent.action = SimpleAppWidget.ACTION_CONNECTING_VPN
         applicationContext?.sendBroadcast(widgetIntent)
@@ -330,9 +332,12 @@ class WireGuardService : Service(), VpnStatus.StateListener {
                 /*Disconnect TCP,UDP*/
                 App.connection_status = App.CONNECTION_STATE_DISCONNECTED
                 MainActivity.vpnConnectionCallBacks?.onVpnDisconnected()
+
                 val widgetIntent = Intent(applicationContext, SimpleAppWidget::class.java)
                 widgetIntent.action = SimpleAppWidget.ACTION_DISCONNECT_VPN
                 applicationContext?.sendBroadcast(widgetIntent)
+
+                basePreferenceHelper.setConnectState(App.DISCONNECTED)
                 OpenVPNService.abortConnectionVPN = true
                 ProfileManager.setConntectedVpnProfileDisconnected(applicationContext)
 
@@ -552,18 +557,20 @@ class WireGuardService : Service(), VpnStatus.StateListener {
 
         countDownTimer = object : CountDownTimer(32000, 1000) {
             override fun onTick(millisUntilFinished: Long) {
-                if (App.connection_status == App.CONNECTION_STATE_CONNECTED
-                    || App.connection_status == App.CONNECTION_STATE_CONNECTED_2) {
+                val connectState = basePreferenceHelper.getConnectState()
+                if (connectState == App.CONNECTED) {
                     MainActivity.vpnConnectionCallBacks?.onVpnConnected()
                     val widgetIntent = Intent(applicationContext, SimpleAppWidget::class.java)
                     widgetIntent.action = SimpleAppWidget.ACTION_CONNECT_VPN
                     applicationContext?.sendBroadcast(widgetIntent)
+                    basePreferenceHelper.setConnectState(App.CONNECTED)
                     countDownTimer!!.cancel()
                 }
             }
 
             override fun onFinish() {
-                if (App.connection_status == App.CONNECTION_STATE_CONNECTING) {
+                val connectState = basePreferenceHelper.getConnectState()
+                if (connectState == App.CONNECTING) {
                     stopVpn()
                 }
             }

+ 1 - 1
app/src/main/java/com/vpn/fastestvpnservice/widgets/SimpleAppWidget.kt

@@ -250,7 +250,7 @@ class SimpleAppWidget() : AppWidgetProvider(), VPNConnectionCallBacks {
         }   // Stop Service
 
         if (intent?.action.equals(ACTION_CHANGE_SERVER)){
-
+            Log.d("test_widget", "ACTION_CHANGE_SERVER : $connectState")
             if (connectState == App.CONNECTED)
             {
                 onVpnConnected()

+ 1 - 1
app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java

@@ -1042,7 +1042,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac
                 updateNotification("");
             } else if (level == LEVEL_CONNECTED) {
                 App.connection_status = 2;
-//                sessionManager.setConnectState(App.CONNECTED);
+                sessionManager.setConnectState(App.CONNECTED);
 
                 Intent in = new Intent(ACTION_VPN_CONNECTED);
                 LocalBroadcastManager.getInstance(getBaseContext()).sendBroadcast(in);