|
@@ -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,
|