Forráskód Böngészése

disconnect vpn if connected when logout...

Khubaib 1 éve
szülő
commit
9ee3d92eaf

+ 3 - 3
app/src/main/java/com/vpn/fastestvpnservice/helpers/BasePreferenceHelper.kt

@@ -491,10 +491,10 @@ class BasePreferenceHelper(private val context: Context) : PreferencesHelper() {
     }
 
     fun getSplitPosition(): String {
-        try {
-            return getStringPreference(context, KEY_FILENAME, KEY_SPLIT_POS)
+        return try {
+            getStringPreference(context, KEY_FILENAME, KEY_SPLIT_POS, splitList[0])
         } catch (ex: Exception) {
-            return splitList[0]
+            splitList[0]
         }
     }
 

+ 25 - 2
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/AccountScreen.kt

@@ -1,6 +1,8 @@
 package com.vpn.fastestvpnservice.screens.bottomNavBarScreens
 
 import android.content.res.Configuration
+import android.os.Handler
+import android.os.Looper
 import android.util.Log
 import android.widget.Toast
 import androidx.compose.animation.AnimatedVisibility
@@ -35,6 +37,7 @@ import androidx.compose.runtime.livedata.observeAsState
 import androidx.compose.runtime.mutableFloatStateOf
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
+import androidx.compose.runtime.rememberCoroutineScope
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
@@ -62,7 +65,10 @@ import com.vpn.fastestvpnservice.R
 import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
 import com.vpn.fastestvpnservice.navigation.navigationAnimation
 import com.vpn.fastestvpnservice.sealedClass.Screen
+import com.vpn.fastestvpnservice.utils.VPNConnectionsUtil
 import com.vpn.fastestvpnservice.viewmodels.AccountViewModel
+import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
+import de.blinkt.openvpn.core.App
 import kotlinx.coroutines.delay
 
 //var LocalLoggedOut = staticCompositionLocalOf<Boolean> { false }
@@ -225,6 +231,7 @@ fun Account(navHostController: NavHostController,
 
         val logoutResponse = accountViewModel.liveDataLogout.observeAsState().value
         logoutResponse?.let {
+            Log.d("test_button_log", "logout api response")
             accountViewModel.setLogoutStatus(false)
             if (it) {
                 Log.d("test_api_response","Logout live: $logoutResponse")
@@ -401,7 +408,11 @@ fun BoxScope.LogoutDialog(
     basePreferenceHelper: BasePreferenceHelper,
     accountViewModel: AccountViewModel
 ) {
-
+    val context = LocalContext.current
+    val scope = rememberCoroutineScope()
+    val homeViewModel: HomeViewModel = viewModel {
+        HomeViewModel(context, scope)
+    }
     Surface(
         color = colorResource(id = R.color.white),
         modifier = Modifier
@@ -465,12 +476,24 @@ fun BoxScope.LogoutDialog(
 
                 Button(
                     onClick = {
-                        Log.d("test_button", "Yes")
+                        Log.d("test_button", "Logout Yes")
 
                         if (isLogout) {
                             Log.d("test_api_response","Logout click = $isLogout")
+
+                            val connectState = homeViewModel.isConnect.value
+                            if (connectState == App.CONNECTED || connectState == App.CONNECTING) {
+                                Log.d("test_button_log", "connectState = $connectState, act = $act")
+                                Handler(Looper.getMainLooper()).postDelayed({
+                                    val wg = VPNConnectionsUtil(context, act ,homeViewModel)
+                                    wg.stopVpn()
+                                }, 400)
+                            }
+
+                            Log.d("test_button_log", "logout api")
                             accountViewModel.setLogoutStatus(true)
                             accountViewModel.logout()
+
                             onCancel()
                         }
 

+ 4 - 1
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/HomeScreen.kt

@@ -1087,7 +1087,10 @@ fun BoxScope.AddRowSmart(
             icon = Utils.getDrawable(context, recently?.iso)
             selectedServer = recently
         }
-        smartConnect[2] -> {}
+        smartConnect[2] -> {
+            icon = Utils.getDrawable(context, anySpecific?.iso)
+            selectedServer = anySpecific
+        }
         else -> {}
     }
     

+ 1 - 0
app/src/main/java/com/vpn/fastestvpnservice/utils/VPNConnectionsUtil.kt

@@ -366,6 +366,7 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
                 Log.d("test_wg", "server = ${server?.server_name}, dns = ${server?.dns}, wg.ip = ${wireguard?.ip}, wg.key = ${wireguard?.key}")
 
                 basePreferenceHelper.getSplitPosition().let {
+                    Log.d("test_wg", "getSplitPosition = $it")
                     when(it) {
                         splitList[0] -> {
                             App.backend?.setState(