| 
					
				 | 
			
			
				@@ -2,9 +2,6 @@ package com.vpn.fastestvpnservice.screens 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import android.app.Activity 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import android.content.res.Configuration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import android.location.Location 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import android.os.Handler 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import android.os.Looper 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import android.util.Log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.foundation.ExperimentalFoundationApi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.foundation.LocalOverscrollConfiguration 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -22,7 +19,6 @@ import androidx.compose.foundation.layout.fillMaxWidth 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.foundation.layout.height 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.foundation.layout.padding 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.foundation.layout.size 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import androidx.compose.foundation.layout.width 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.foundation.lazy.LazyColumn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.foundation.lazy.items 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.foundation.lazy.itemsIndexed 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -41,7 +37,6 @@ import androidx.compose.material3.ModalBottomSheet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.material3.RadioButton 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.material3.RadioButtonDefaults 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.material3.ScrollableTabRow 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import androidx.compose.material3.SearchBar 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.material3.SearchBarDefaults 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.material3.Surface 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.material3.Tab 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -55,12 +50,10 @@ import androidx.compose.runtime.Composable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.runtime.CompositionLocalProvider 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.runtime.LaunchedEffect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.runtime.MutableState 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import androidx.compose.runtime.collectAsState 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.runtime.derivedStateOf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.runtime.getValue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.runtime.livedata.observeAsState 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.runtime.mutableFloatStateOf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import androidx.compose.runtime.mutableIntStateOf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.runtime.mutableStateOf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.runtime.remember 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.runtime.rememberCoroutineScope 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -84,14 +77,10 @@ import androidx.compose.ui.unit.dp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.compose.ui.unit.sp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import androidx.navigation.NavHostController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 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.R 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.vpn.fastestvpnservice.beans.Server 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.vpn.fastestvpnservice.beans.ServerDataGlobal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.vpn.fastestvpnservice.beans.filterList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.vpn.fastestvpnservice.beans.serversListTest 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.vpn.fastestvpnservice.customItems.CountryItem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.vpn.fastestvpnservice.customItems.ServerItem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.vpn.fastestvpnservice.customItems.ServerSearchItem 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -100,14 +89,12 @@ import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.AddTextSettings 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.vpn.fastestvpnservice.sealedClass.Screen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.vpn.fastestvpnservice.ui.theme.customTypography2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.vpn.fastestvpnservice.utils.isTablet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.vpn.fastestvpnservice.viewmodels.SearchListViewModel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.vpn.fastestvpnservice.viewmodels.ServerListViewModel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.vpn.fastestvpnservice.viewmodels.SplashViewModel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import kotlinx.coroutines.delay 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import kotlinx.coroutines.launch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var isAlphabetList: MutableState<Boolean> = mutableStateOf(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@OptIn(ExperimentalMaterial3Api::class, ExperimentalFoundationApi::class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@OptIn(ExperimentalFoundationApi::class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Composable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fun ServerList( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     navHostController: NavHostController, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -458,19 +445,10 @@ fun ColumnScope.ShowRecommendedList( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     recommendedFilterList.sortBy { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         it.server_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    recommendedFilterList.forEachIndexed { index, server -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Log.d("test_filter_list", "if => ${server.server_name}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//                    val recommended2 = serverListViewModelSplash.liveDataGetRecommendedServers.value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//                    val recommended2 = prefHelper.getRecommendedList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    val recommended2 = recommendedListFinalGlobal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    recommended2?.forEachIndexed { index, server -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Log.d("test_filter_list", "recommended2 => ${server.server_name}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    recommendedFilterList = recommended2 as ArrayList<Server> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    recommendedFilterList.forEachIndexed { index, server -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Log.d("test_filter_list", "else => ${server.server_name}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    recommendedFilterList = recommended 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    recommendedFilterList.sortByDescending { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        it.country_sort 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -494,10 +472,7 @@ fun ColumnScope.ShowAllLocationsList( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     val pagerState = rememberPagerState(pageCount = {serverData.size}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     val selectedIndex by remember { derivedStateOf { pagerState.currentPage } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     var selectedTabIndex by rememberSaveable { mutableStateOf(0) } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var indexTab = serverListViewModel.liveDataPagerIndex.observeAsState().value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     val scope = rememberCoroutineScope() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    val data = basePreferenceHelper.getServerData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    val context = LocalContext.current 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     var filterServersList: ArrayList<Server> = ArrayList<Server>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ScrollableTabRow( 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -585,7 +560,6 @@ fun ColumnScope.ShowAllLocationsList( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //    var isServersListExpanded by rememberSaveable { mutableStateOf(List(data.size) {true}) } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    val isServersListExpanded by rememberSaveable { mutableStateOf(true) } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //    filterServersList = if ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //        data[selectedTabIndex].name?.lowercase().toString() == "servers") { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -649,12 +623,21 @@ fun ColumnScope.ShowAllLocationsList( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (countries != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             countriesFilter = countries 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            countriesFilter.get(selectedTabIndex)?.servers?.sortByDescending { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                it.totalServers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            countriesFilter.get(selectedTabIndex)?.servers?.let { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (selectedTabIndex == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    it.sortBy {server -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        server.country_sort 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    it.sortByDescending {server -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        server.connection_count 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            groupServers?.sortByDescending { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                it?.totalServers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            groupServers?.sortBy { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                it?.country_sort 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             serverListViewModelSplash.mutableLiveDataGroupServers.value = groupServers 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -685,6 +668,7 @@ fun ColumnScope.ShowAllLocationsList( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Composable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fun ColumnScope.ShowHeaderItem( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     serverTitle: String, 
			 |