Jelajahi Sumber

showing server selected on app/smart layout temporary, but when user opens app again then selected smart type server will shown...

Khubaib 1 tahun lalu
induk
melakukan
637f6d2b78

+ 2 - 0
app/src/main/java/com/vpn/fastestvpnservice/customItems/ServerItem.kt

@@ -60,6 +60,7 @@ import androidx.navigation.compose.rememberNavController
 import com.stealthcopter.networktools.Ping
 import com.stealthcopter.networktools.ping.PingResult
 import com.stealthcopter.networktools.ping.PingStats
+import com.vpn.fastestvpnservice.MainActivity
 import com.vpn.fastestvpnservice.R
 import com.vpn.fastestvpnservice.beans.Server
 import com.vpn.fastestvpnservice.beans.ServerList
@@ -558,6 +559,7 @@ fun ServerSpecificItem(
                     interactionSource = remember { MutableInteractionSource() }
                 ) {
                     if (server.enable == 1) {
+                        MainActivity.isSelectedServersShown = true
                         basePreferenceHelper.setServerObject(server)
                         basePreferenceHelper.setSmartServerObject(server)
                         onServerDisable()

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

@@ -45,6 +45,7 @@ class BasePreferenceHelper(private val context: Context) : PreferencesHelper() {
         removePreference(context, KEY_FILENAME, SMART)
         removePreference(context, KEY_FILENAME, KEY_SMART_SERVER)
         removePreference(context, KEY_FILENAME, KEY_AUTO_OPENVPN)
+        removePreference(context, KEY_FILENAME, KEY_RECOMMENDED)
     }
 
     fun saveUser(user: UserResponse) {
@@ -318,6 +319,20 @@ class BasePreferenceHelper(private val context: Context) : PreferencesHelper() {
         putStringPreference(context, KEY_FILENAME, KEY_SMART_SERVER, Gson().toJson(smartObj))
     }
 
+    fun getRecommendedServerObject(): Server? {
+        var serverObj: Server? = null
+        val serverObjStr: String = getStringPreference(context, KEY_FILENAME, KEY_RECOMMENDED)
+        if (serverObjStr != null) {
+            val gson = GsonBuilder().create()
+            serverObj = gson.fromJson(serverObjStr, Server::class.java)
+        }
+        return serverObj
+    }
+
+    fun setRecommendedServerObject(recommended: Server?) {
+        putStringPreference(context, KEY_FILENAME, KEY_RECOMMENDED, Gson().toJson(recommended))
+    }
+
 
     fun getSplitTunneledApps(): String? {
         return getStringPreference(context, KEY_FILENAME, KEY_SELECTED_APPS)
@@ -534,5 +549,6 @@ class BasePreferenceHelper(private val context: Context) : PreferencesHelper() {
         private const val SMART = "keydata_smart"
         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"
     }
 }

+ 1 - 0
app/src/main/java/com/vpn/fastestvpnservice/screens/LoginScreen.kt

@@ -702,6 +702,7 @@ fun BoxScope.SignInButton(
 
                         smartLocationList.forEach {
                             prefHelper.setSmartServerObject(it)
+                            prefHelper.setRecommendedServerObject(it)
                             Log.d("smartLocationList", "L:: server = ${it.server_name}")
                         }
 

+ 1 - 0
app/src/main/java/com/vpn/fastestvpnservice/screens/SignUpScreen.kt

@@ -777,6 +777,7 @@ fun BoxScope.SignUpButton(
 
                     smartLocationList.forEach {
                         prefHelper.setSmartServerObject(it)
+                        prefHelper.setRecommendedServerObject(it)
                         Log.d("smartLocationList", "S:: server = ${it.server_name}")
                     }
 

+ 1 - 0
app/src/main/java/com/vpn/fastestvpnservice/screens/SplashScreen.kt

@@ -157,6 +157,7 @@ fun Splash(navHostController: NavHostController) {
 
             smartLocationList.forEach {
                 basePreferenceHelper.setSmartServerObject(it)
+                basePreferenceHelper.setRecommendedServerObject(it)
                 Log.d("smartLocationList", "SS:: server = ${it.server_name}")
             }
 

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

@@ -1077,6 +1077,7 @@ fun BoxScope.AddRowSmart(
     context: Context
 ) {
     val smart = basePreferenceHelper.getSmartServerObject()
+    val recommended = basePreferenceHelper.getRecommendedServerObject()
     val recently = basePreferenceHelper.getServerObject()
     val anySpecific = basePreferenceHelper.getServerObject()
     val ipInfo = basePreferenceHelper.getIpinfo()
@@ -1090,12 +1091,19 @@ fun BoxScope.AddRowSmart(
     if (MainActivity.isSelectedServersShown) {
         selectedServer = basePreferenceHelper.getServerObject()
         icon = Utils.getDrawable(context, selectedServer?.iso)
+
+        when(selectedSmartList) {
+            smartConnect[0] -> {
+                selectedSmartServer = recommended
+            }
+        }
+
     } else {
         when(selectedSmartList) {
             smartConnect[0] -> {
                 icon = Utils.getDrawable(context, smart?.iso)
                 selectedServer = smart
-                selectedSmartServer = smart
+                selectedSmartServer = recommended
             }
             smartConnect[1] -> {
                 icon = Utils.getDrawable(context, recently?.iso)