Explorar el Código

separated connected server from selectedserver so that selected server ip doesn't show when selected and connected server remains displayed...

Khubaib hace 1 año
padre
commit
b3d3d91c0c

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

@@ -305,6 +305,22 @@ class BasePreferenceHelper(private val context: Context) : PreferencesHelper() {
         putStringPreference(context, KEY_FILENAME, KEY_SERVERS, Gson().toJson(serverObj))
     }
 
+
+
+    fun getConnectedServer(): Server? {
+        var serverObj: Server? = null
+        val serverObjStr: String = getStringPreference(context, KEY_FILENAME, KEY_CONNECTED_SERVER)
+        if (serverObjStr != null) {
+            val gson = GsonBuilder().create()
+            serverObj = gson.fromJson(serverObjStr, Server::class.java)
+        }
+        return serverObj
+    }
+
+    fun setConnectedServer(serverObj: Server?) {
+        putStringPreference(context, KEY_FILENAME, KEY_CONNECTED_SERVER, Gson().toJson(serverObj))
+    }
+
     fun getSmartServerObject(): Server? {
         var serverObj: Server? = null
         val serverObjStr: String = getStringPreference(context, KEY_FILENAME, KEY_SMART_SERVER)
@@ -550,5 +566,6 @@ class BasePreferenceHelper(private val context: Context) : PreferencesHelper() {
         private const val KEY_SMART_SERVER = "keydata_smart_server"
         private const val KEY_AUTO_OPENVPN = "keydata_auto_openvpn"
         private const val KEY_RECOMMENDED = "keydata_recommended"
+        private const val KEY_CONNECTED_SERVER = "keydata_connected_server"
     }
 }

+ 13 - 5
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/HomeScreen.kt

@@ -143,7 +143,7 @@ lateinit var homeViewModel1: HomeViewModel
         Log.d("ServerCallbacks", "onServerSelected called!")
         Log.d("ServerCallbacks", "onServerSelected server = ${server.server_name}")
 
-        val lastServer = basePreferenceHelper.getServerObject()
+        val lastServer = basePreferenceHelper.getConnectedServer()
         if (isServerDialogShown) {
             Log.d("ServerCallbacks", "onServerSelected true!")
             if (wg.isVPNConnected()) {
@@ -154,10 +154,12 @@ lateinit var homeViewModel1: HomeViewModel
                     serverObj.value = server
                 }
                 else {
+                    basePreferenceHelper.setConnectedServer(server)
                     basePreferenceHelper.setServerObject(server)
                     Log.d("isConnect_State", "onServerSelected ${homeViewModel.isConnect.value}")
                 }
             } else {
+                basePreferenceHelper.setConnectedServer(server)
                 basePreferenceHelper.setServerObject(server)
                 wg.startVpn()
             }
@@ -424,6 +426,9 @@ fun Home(navHostController: NavHostController, activity: ComponentActivity) {
                         )
 
                     } else {
+                        prefHelper.getServerObject()?.let {
+                            prefHelper.setConnectedServer(it)
+                        }
                         Log.d("isConnect_State", "identifier -> $identifier")
                         if (isConnect == App.CONNECTED || isConnect == App.CONNECTING) {
                             Log.d("isConnect_State_vpn", "stopVPN")
@@ -470,7 +475,7 @@ fun Home(navHostController: NavHostController, activity: ComponentActivity) {
                 .padding(top = 40.dp)
                 .height(125.dp),
         ) {
-            val serverObj = basePreferenceHelper.getServerObject()
+            val serverObj = basePreferenceHelper.getConnectedServer()
             val serverDis = basePreferenceHelper.getIpinfo()
 
             var ipInfo = homeViewModel.mutableLiveDataIpInfo.observeAsState().value?.query
@@ -710,6 +715,7 @@ fun Home(navHostController: NavHostController, activity: ComponentActivity) {
                         onClick = {
                             Log.d("test_button", "onClick Smart Connect ${smartServer?.server_name}")
                             basePreferenceHelper.setServerObject(smartServer)
+                            basePreferenceHelper.setConnectedServer(smartServer)
                             if (isConnect == App.CONNECTED || isConnect == App.CONNECTING) {
                                 Log.d("isConnect_State_vpn", "stopVPN")
                                 vpnConnectionsUtil.stopVpn()
@@ -786,7 +792,7 @@ fun BoxScope.ShowServerDialog(
             .fillMaxWidth()
             .wrapContentHeight()
     ) {
-        val lastServer = prefHelper.getServerObject()
+        val lastServer = prefHelper.getConnectedServer()
         Surface(
             color = colorResource(id = R.color.white),
             modifier = Modifier
@@ -851,6 +857,7 @@ fun BoxScope.ShowServerDialog(
                             Log.d("test_button", "Yes")
                             isServerDialog.value = false
                             prefHelper.setServerObject(serverObj.value)
+                            prefHelper.setConnectedServer(serverObj.value)
                             wg.stopVpn()
                             Handler().postDelayed(Runnable {
                                 wg.startVpn()
@@ -912,7 +919,7 @@ fun BoxScope.ShowProtocolDialog(
             .fillMaxWidth()
             .wrapContentHeight()
     ) {
-        val lastServer = prefHelper.getServerObject()
+        val lastServer = prefHelper.getConnectedServer()
         val selectedProtocol = prefHelper.getProtocol()
 
         val oldProtocolTitle = if (selectedProtocol.index == 0) AppEnum.AUTO_PROTOCOL.key else selectedProtocol.title
@@ -979,8 +986,9 @@ fun BoxScope.ShowProtocolDialog(
                     Button(
                         onClick = {
                             Log.d("ServerCallbacks", "Yes")
-                            val server = prefHelper.getServerObject()
+                            val server = prefHelper.getConnectedServer()
                             prefHelper.setServerObject(server)
+                            prefHelper.setConnectedServer(server)
                             prefHelper.saveProtocol(protocol = protocolObj.value)
                             wg.stopVpn()
                             Handler().postDelayed(Runnable {

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

@@ -123,8 +123,11 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
 
                 if (basePreferenceHelper.getProtocol().title.contentEquals(AppEnum.IKEV2_PROTOCOL.key))
                 {
+                    basePreferenceHelper.getConnectedServer().let {
+                        Log.d("getConnectedServer", "s = ${it?.server_name}")
+                    }
 
-                    basePreferenceHelper.getServerObject().let { server ->
+                    basePreferenceHelper.getConnectedServer().let { server ->
 
                         /*Connect IKEV2*/
 
@@ -361,7 +364,7 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
                     Log.d("test_wg", "tunnelStatus else = ${App.tunnelStatus}")
                 }
 
-                val server = basePreferenceHelper.getServerObject()
+                val server = basePreferenceHelper.getConnectedServer()
                 val wireguard = basePreferenceHelper.getWireGuard()
                 Log.d("test_wg", "server = ${server?.server_name}, dns = ${server?.dns}, wg.ip = ${wireguard?.ip}, wg.key = ${wireguard?.key}")
 
@@ -377,8 +380,8 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
                                         .build()
                                 ).addPeer(
                                     App.peerBuilder.addAllowedIp(InetNetwork.parse("0.0.0.0/0"))
-                                        .setEndpoint(InetEndpoint.parse(basePreferenceHelper.getServerObject()?.dns + ":51820"))
-                                        .parsePublicKey(basePreferenceHelper.getServerObject()?.wg_key).build()
+                                        .setEndpoint(InetEndpoint.parse(basePreferenceHelper.getConnectedServer()?.dns + ":51820"))
+                                        .parsePublicKey(basePreferenceHelper.getConnectedServer()?.wg_key).build()
                                 ).build()
                             )
                         }
@@ -392,8 +395,8 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
                                         .build()
                                 ).addPeer(
                                     App.peerBuilder.addAllowedIp(InetNetwork.parse("0.0.0.0/0"))
-                                        .setEndpoint(InetEndpoint.parse(basePreferenceHelper.getServerObject()?.dns + ":51820"))
-                                        .parsePublicKey(basePreferenceHelper.getServerObject()?.wg_key).build()
+                                        .setEndpoint(InetEndpoint.parse(basePreferenceHelper.getConnectedServer()?.dns + ":51820"))
+                                        .parsePublicKey(basePreferenceHelper.getConnectedServer()?.wg_key).build()
                                 ).build()
                             )
                         }
@@ -407,8 +410,8 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
                                         .build()
                                 ).addPeer(
                                     App.peerBuilder.addAllowedIp(InetNetwork.parse("0.0.0.0/0"))
-                                        .setEndpoint(InetEndpoint.parse(basePreferenceHelper.getServerObject()?.dns + ":51820"))
-                                        .parsePublicKey(basePreferenceHelper.getServerObject()?.wg_key).build()
+                                        .setEndpoint(InetEndpoint.parse(basePreferenceHelper.getConnectedServer()?.dns + ":51820"))
+                                        .parsePublicKey(basePreferenceHelper.getConnectedServer()?.wg_key).build()
                                 ).build()
                             )
                         }

+ 3 - 3
app/src/main/java/de/blinkt/openvpn/core/ConfigParser.java

@@ -545,14 +545,14 @@ public class ConfigParser {
         //remotes.clear();
         remotes = new Vector<>();
 
-        Server server = sessionManager.getServerObject();
+        Server server = sessionManager.getConnectedServer();
         String portStr = Integer.toString(server.getPort());
 
-//        Log.d("test_openvpn", server.getServer_name() + " " + portStr + " " + server.getPort());
+        Log.d("test_openvpn", server.getServer_name() + " " + portStr + " " + server.getPort());
 
         Vector subVector = new Vector<String>();
         subVector.add("remote");
-        subVector.add(sessionManager.getServerObject().getDns());
+        subVector.add(sessionManager.getConnectedServer().getDns());
         subVector.add(portStr);
 //        subVector.add("4443");
 

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

@@ -302,7 +302,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac
 
 
         BasePreferenceHelper sessionManager = new BasePreferenceHelper(this);
-        City = sessionManager.getServerObject().getCountry();
+        City = sessionManager.getConnectedServer().getCountry();
         Image = "fastestvpn";
 
         try {