Kaynağa Gözat

ikev2 states connection resolved..

Khubaib 1 yıl önce
ebeveyn
işleme
0f51a1ed5a

+ 9 - 0
app/src/main/java/com/vpn/fastestvpnservice/interfaces/IKEv2Callbacks.kt

@@ -0,0 +1,9 @@
+package com.vpn.fastestvpnservice.interfaces
+
+import android.content.Context
+import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
+
+interface IKEv2Callbacks {
+
+    fun ServerNotResponding(context: Context, homeViewModel: HomeViewModel)
+}

+ 23 - 0
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/HomeScreen.kt

@@ -104,6 +104,7 @@ import com.vpn.fastestvpnservice.beans.isDarkTheme
 import com.vpn.fastestvpnservice.constants.AppEnum
 import com.vpn.fastestvpnservice.constants.smartConnect
 import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
+import com.vpn.fastestvpnservice.interfaces.IKEv2Callbacks
 import com.vpn.fastestvpnservice.interfaces.ServerCallbacks
 import com.vpn.fastestvpnservice.navigation.navigationAnimation
 import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
@@ -201,6 +202,28 @@ lateinit var homeViewModel1: HomeViewModel
 
  }
 
+ val ikev2Callback = object : IKEv2Callbacks {
+     override fun ServerNotResponding(context: Context, homeViewModel: HomeViewModel) {
+         Log.d("ServerNotResponding", "Home -> ")
+         val wg = VPNConnectionsUtil(context, act , homeViewModel)
+         wg.onResumeCallBack()
+
+         val basePreferenceHelper = BasePreferenceHelper(context)
+         if (basePreferenceHelper.getProtocol().index == 0) {
+             Log.d("ServerNotResponding", "Auto -> ${wg.isBound}")
+
+         } else {
+             Log.d("ServerNotResponding", "IKEv2 -> ${wg.isBound}")
+             Toast.makeText(
+                 context,
+                 context.getString(R.string.server_not_responding),
+                 Toast.LENGTH_SHORT
+             ).show()
+         }
+     }
+
+ }
+
 @OptIn(ExperimentalFoundationApi::class, ExperimentalMaterial3Api::class)
 @Composable
 fun Home(navHostController: NavHostController, activity: ComponentActivity) {

+ 24 - 11
app/src/main/java/com/vpn/fastestvpnservice/utils/VPNConnectionsUtil.kt

@@ -30,6 +30,7 @@ import com.vpn.fastestvpnservice.constants.splitList
 import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
 import com.vpn.fastestvpnservice.helpers.UIHelper
 import com.vpn.fastestvpnservice.openVpnUtils.EncryptData
+import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.ikev2Callback
 import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
 import com.wireguard.android.backend.Backend
 import com.wireguard.android.backend.GoBackend
@@ -433,8 +434,12 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
                 val intent = Intent(context, VpnProfileControlActivity::class.java)
                 intent.action = VpnProfileControlActivity.DISCONNECT
                 context.startActivity(intent)
-                homeViewModel.setConnectState(App.DISCONNECTED)
 
+                val connectState = homeViewModel.isConnect.value
+                Log.d("disconnect_ikev2", "connectState = $connectState")
+                if (connectState == 1) {
+                    homeViewModel.setConnectState(App.DISCONNECTED)
+                }
             }
             /*Disconnect Wireguard*/
             else if (basePreferenceHelper.getProtocol().title.toLowerCase()
@@ -527,18 +532,23 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
                         App.connection_status = App.CONNECTION_STATE_CONNECTED
                         Log.d("ikev2_rec_conn", "ACTION_VPN_CONNECTED $connectState")
 
-                        if (connectState == 1) {
-                            Log.d("ikev2_rec_conn", "setConnectState(2) $connectState")
-                            homeViewModel.setConnectState(App.CONNECTED)
-                        }
-                        else if (connectState == 0) {
-                            Log.d("ikev2_rec_conn", "setConnectState(0) $connectState")
-                            homeViewModel.setConnectState(App.DISCONNECTED)
-                        }
+//                        val status = isVPNConnected()
+//                        Log.d("ikev2_rec_conn", "isVPNConnected $status")
+
+                        homeViewModel.setConnectState(App.CONNECTED)
+
+
+//                        if (connectState == 1) {
+//                            Log.d("ikev2_rec_conn", "setConnectState(2) $connectState")
+//                            homeViewModel.setConnectState(App.CONNECTED)
+//                        }
+//                        else if (connectState == 0) {
+//                            Log.d("ikev2_rec_conn", "setConnectState(0) $connectState")
+//                            homeViewModel.setConnectState(App.DISCONNECTED)
+//                        }
                         Log.d("vpnConnectionCall_ip", "ACTION_VPN_CONNECTED $connectState")
 
-                        val status = isVPNConnected()
-                        Log.d("vpnConnectionCall_ip", "isVPNConnected $status")
+
 //                        val widgetIntent1 = Intent(context, SimpleAppWidget::class.java)
 //                        widgetIntent1.action = SimpleAppWidget.ACTION_CONNECT_VPN
 //                        context?.sendBroadcast(widgetIntent1)
@@ -576,6 +586,9 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
                     CharonVpnService.ACTION_VPN_SERVER_NOT_RESPONDING -> {
                         Log.d("vpnConnectionCall_ip", "ACTION_VPN_SERVER_NOT_RESPONDING")
                         App.connection_status = App.CONNECTION_STATE_SERVER_NOT_RESPONDING
+                        if (context != null) {
+                            ikev2Callback.ServerNotResponding(context, homeViewModel)
+                        }
                     }
                 }
             }