浏览代码

Servers updating on changing language and protocol, initialized state of servers when logout or change protocol

Khubaib 7 月之前
父节点
当前提交
f9c3ed8266

+ 1 - 1
.idea/deploymentTargetSelector.xml

@@ -4,7 +4,7 @@
     <selectionStates>
       <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
-        <DropdownSelection timestamp="2024-09-12T09:58:09.025375703Z">
+        <DropdownSelection timestamp="2024-09-12T12:11:47.747326785Z">
           <Target type="DEFAULT_BOOT">
             <handle>
               <DeviceId pluginId="LocalEmulator" identifier="path=/home/ubuntu/.android/avd/Television_1080p_API_31.avd" />

+ 3 - 0
app/src/main/java/com/vpn/fastestvpnservice/screensTV/AccountScreenTV.kt

@@ -86,6 +86,7 @@ import com.vpn.fastestvpnservice.utils.VPNConnectionsUtil
 import com.vpn.fastestvpnservice.utils.isTablet
 import com.vpn.fastestvpnservice.viewmodels.AccountViewModel
 import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
+import com.vpn.fastestvpnservice.views.initializeMutableItems
 import com.vpn.fastestvpnservice.widgets.SimpleAppWidget
 import de.blinkt.openvpn.core.App
 import kotlinx.coroutines.delay
@@ -289,6 +290,7 @@ fun AccountTV(navHostController: NavHostController,
                     Log.d("test_api_response","Logout live: $logoutResponse")
                     basePreferenceHelper.setLoggedInState(false)
                     basePreferenceHelper.clearAllData()
+                    initializeMutableItems()
 //                    setCustomLocale(context)
                     settingsNavHostController.popBackStack()
                     settingsNavHostController.navigate(ScreenTV.LoginTV.route)
@@ -316,6 +318,7 @@ fun AccountTV(navHostController: NavHostController,
                     Log.d("test_api_response","Delete live: ${deleteResponse.status}")
                     basePreferenceHelper.setLoggedInState(false)
                     basePreferenceHelper.clearAllData()
+                    initializeMutableItems()
 //                    setCustomLocale(context)
                     settingsNavHostController.popBackStack()
                     settingsNavHostController.navigate(ScreenTV.LoginTV.route)

+ 30 - 16
app/src/main/java/com/vpn/fastestvpnservice/screensTV/HomeScreenTV.kt

@@ -124,6 +124,7 @@ import com.vpn.fastestvpnservice.utils.VPNConnectionsUtil
 import com.vpn.fastestvpnservice.utils.isTablet
 import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
 import com.vpn.fastestvpnservice.viewmodels.ServerListViewModel
+import com.vpn.fastestvpnservice.views.initializeMutableItems
 import com.wireguard.android.backend.GoBackend
 import de.blinkt.openvpn.core.App
 import kotlinx.coroutines.delay
@@ -222,6 +223,7 @@ val onServerTV = object : ServerCallbacksTV {
                             val lastServer1 = prefHelper.getServerObject()
                         }
                     }
+                    initializeMutableItems()
                     serverListViewModelSplash.setCountryDataTV()
                 }
             }
@@ -345,6 +347,7 @@ fun HomeTV(
         if (!it.status) {
             basePreferenceHelper.setLoggedInState(false)
             basePreferenceHelper.clearAllData()
+            initializeMutableItems()
 //            setCustomLocale(context)
             settingsNavHostController.popBackStack()
             settingsNavHostController.navigate(ScreenTV.LoginTV.route)
@@ -365,31 +368,41 @@ fun HomeTV(
     if (isLaunched) {
         Log.d("test_lingual_splash", "isLaunched - true")
         val countries = serverListViewModelSplash.liveDataGetServersGlobal.observeAsState().value
+        Log.d("test_serverlist_tv","$countries = ${countries?.size}")
+
+        val serverDataName = if (countries?.size == 5) listOf<String>("Servers", "Dedicated IP", "Streaming", "D-VPN", "P2P")
+        else listOf<String>("Servers", "Streaming", "D-VPN", "P2P")
+
+        Log.d("test_lingual_splash", "${serverDataName.size} , ${serverDataName}")
+        Log.d("test_lingual_splash","${isLocationsEnabled.value} ${isDedicatedIpEnabled.value}" +
+                " ${isStreamingEnabled.value}" +
+                " ${isDvpnEnabled.value} ${isP2pEnabled.value}")
+
         countries?.forEachIndexed { index, serverData ->
-            Log.d("test_serverlist_tv","$index ${serverData?.name} ${serverData?.servers?.size}")
-            if (serverData?.name?.equals("Servers") == true) {
-                Log.d("test_serverlist_tv","$index ${serverData?.name}")
-                serverData.servers?.let { locations = it }
+//            Log.d("test_serverlist_tv","$index ${serverData?.name} ${serverData?.servers?.size}")
+            if (serverDataName[index] == "Servers") {
+                Log.d("test_serverlist_tv","Inside ${serverData?.name}")
+                serverData?.servers?.let { locations = it }
                 if (locations.size > 0) isLocationsEnabled.value = true
             }
-            else if (serverData?.name?.equals("Dedicated IP") == true) {
-                Log.d("test_serverlist_tv","$index ${serverData?.name}")
-                serverData.servers?.let { dedicatedIP = it }
+            else if (serverDataName[index] == "Dedicated IP") {
+                Log.d("test_serverlist_tv","Inside ${serverData?.name}")
+                serverData?.servers?.let { dedicatedIP = it }
                 if (dedicatedIP.size > 0) isDedicatedIpEnabled.value = true
             }
-            else if (serverData?.name?.equals("Streaming") == true) {
-                Log.d("test_serverlist_tv","$index ${serverData?.name}")
-                serverData.servers?.let { streaming = it }
+            else if (serverDataName[index].equals("Streaming")) {
+                Log.d("test_serverlist_tv","Inside ${serverData?.name}")
+                serverData?.servers?.let { streaming = it }
                 if (streaming.size > 0) isStreamingEnabled.value = true
             }
-            else if (serverData?.name?.equals("D-VPN") == true) {
-                Log.d("test_serverlist_tv","$index ${serverData?.name}")
-                serverData.servers?.let { dvpn = it }
+            else if (serverDataName[index].equals("D-VPN")) {
+                Log.d("test_serverlist_tv","Inside ${serverData?.name}")
+                serverData?.servers?.let { dvpn = it }
                 if (dvpn.size > 0) isDvpnEnabled.value = true
             }
-            else if (serverData?.name?.equals("P2P") == true) {
-                Log.d("test_serverlist_tv","$index ${serverData?.name}")
-                serverData.servers?.let { p2p = it }
+            else if (serverDataName[index].equals("P2P")) {
+                Log.d("test_serverlist_tv","Inside ${serverData?.name}")
+                serverData?.servers?.let { p2p = it }
                 if (p2p.size > 0) isP2pEnabled.value = true
             }
         }
@@ -1324,6 +1337,7 @@ fun ColumnScope.ShowProtocolDialogTV(
                             }, 500)
                             Log.d("ServerCallbacks", "Yes click => ${isProtocolDialog.value}")
                             isProtocolDialog.value = false
+                            initializeMutableItems()
                             serverListViewModelSplash.setCountryDataTV()
                         },
                         modifier = Modifier

+ 4 - 1
app/src/main/java/com/vpn/fastestvpnservice/screensTV/ServerListScreenTV.kt

@@ -157,8 +157,11 @@ fun ServerListTV(navHostController: NavHostController) {
                     .verticalScroll(rememberScrollState())
                     .background(Color.Transparent)
             ) {
-                val topPadding = 25.dp
+                Log.d("test_serverlist_tv","${isLocationsEnabled.value} ${isDedicatedIpEnabled.value}" +
+                        " ${isStreamingEnabled.value}" +
+                        " ${isDvpnEnabled.value} ${isP2pEnabled.value}")
 
+                val topPadding = 25.dp
                 if (isLocationsEnabled.value) {
                     Text(
                         text = context.getString(R.string.top_locations),

+ 13 - 0
app/src/main/java/com/vpn/fastestvpnservice/views/CustomLocale.kt

@@ -6,6 +6,11 @@ import android.os.Build
 import android.os.LocaleList
 import androidx.appcompat.app.AppCompatDelegate
 import androidx.core.os.LocaleListCompat
+import com.vpn.fastestvpnservice.screensTV.isDedicatedIpEnabled
+import com.vpn.fastestvpnservice.screensTV.isDvpnEnabled
+import com.vpn.fastestvpnservice.screensTV.isLocationsEnabled
+import com.vpn.fastestvpnservice.screensTV.isP2pEnabled
+import com.vpn.fastestvpnservice.screensTV.isStreamingEnabled
 import java.util.Locale
 
 fun setCustomLocale(context: Context) {
@@ -26,4 +31,12 @@ fun setCustomLocale(context: Context) {
             context.resources.displayMetrics
         )
     }
+}
+
+fun initializeMutableItems() {
+    isLocationsEnabled.value = false
+    isDedicatedIpEnabled.value = false
+    isStreamingEnabled.value = false
+    isDvpnEnabled.value = false
+    isP2pEnabled.value = false
 }