|
@@ -5,6 +5,7 @@ import android.location.Location
|
|
|
import android.util.Log
|
|
|
import android.view.animation.Animation
|
|
|
import android.view.animation.AnimationUtils
|
|
|
+import android.widget.Toast
|
|
|
import androidx.compose.animation.Animatable
|
|
|
import androidx.compose.foundation.ExperimentalFoundationApi
|
|
|
import androidx.compose.foundation.LocalOverscrollConfiguration
|
|
@@ -526,19 +527,19 @@ fun ColumnScope.ShowAllLocationsList(
|
|
|
serverListViewModel: ServerListViewModel,
|
|
|
basePreferenceHelper: BasePreferenceHelper
|
|
|
) {
|
|
|
- val allLocationsTabItems = listOf(
|
|
|
- "Countries", "Streaming", "D-VPN", "P2P"
|
|
|
- )
|
|
|
val serverData = basePreferenceHelper.getServerData()
|
|
|
- val filterData = serverData.get(0).servers?.let {
|
|
|
- serverListViewModel.filterServersByISO(
|
|
|
- it
|
|
|
- )
|
|
|
- }
|
|
|
+// val filterData = serverData.get(0).servers?.let {
|
|
|
+// serverListViewModel.filterServersByISO(
|
|
|
+// it
|
|
|
+// )
|
|
|
+// }
|
|
|
|
|
|
val pagerState = rememberPagerState(pageCount = { serverData.size })
|
|
|
val selectedIndex by remember { derivedStateOf { pagerState.currentPage } }
|
|
|
val scope = rememberCoroutineScope()
|
|
|
+ val data = basePreferenceHelper.getServerData()
|
|
|
+ val context = LocalContext.current
|
|
|
+ var filterServersList: ArrayList<Server> = ArrayList<Server>()
|
|
|
|
|
|
// serverData.forEachIndexed { index, server ->
|
|
|
// Log.d("test_data", "${server.name} ${server.servers?.size} -> ${serverData.size}")
|
|
@@ -577,8 +578,32 @@ fun ColumnScope.ShowAllLocationsList(
|
|
|
Tab(
|
|
|
selected = selectedIndex == index1,
|
|
|
onClick = {
|
|
|
+ Toast.makeText(
|
|
|
+ context, "$selectedIndex :: $index1", Toast.LENGTH_SHORT
|
|
|
+ ).show()
|
|
|
scope.launch {
|
|
|
pagerState.animateScrollToPage(index1)
|
|
|
+
|
|
|
+ val filterServersData =
|
|
|
+ if (data[index1].name?.lowercase().toString() == "servers") {
|
|
|
+ data.get(index1).servers?.let {
|
|
|
+ serverListViewModel.filterServersByISO(
|
|
|
+ it
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ data.get(index1).servers?.let {
|
|
|
+ serverListViewModel.filterServersByStreamingServers(
|
|
|
+ it
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ serverListViewModel._mutableLiveDataGetServers.value = filterServersData
|
|
|
+ if (filterServersData != null) {
|
|
|
+ filterServersList = filterServersData
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
selectedContentColor = Color.White,
|
|
@@ -607,21 +632,8 @@ fun ColumnScope.ShowAllLocationsList(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- val data = basePreferenceHelper.getServerData()
|
|
|
-
|
|
|
-
|
|
|
var isServersListExpanded by rememberSaveable { mutableStateOf(List(data.size) {true}) }
|
|
|
|
|
|
-// var isServersListExpanded = List(data.size) { true }
|
|
|
-
|
|
|
- var isStreamingExpanded by rememberSaveable { mutableStateOf(true) }
|
|
|
- var isDvpnExpanded by rememberSaveable { mutableStateOf(true) }
|
|
|
- var isP2PExpanded by rememberSaveable { mutableStateOf(true) }
|
|
|
-
|
|
|
- var isServersShown by rememberSaveable { mutableStateOf(true) }
|
|
|
-
|
|
|
- val isServersTabExpanded by rememberSaveable { mutableStateOf(listOf(true)) }
|
|
|
-
|
|
|
// val rotationState by animateFloatAsState(
|
|
|
// targetValue = if (isCountriesExpanded) 180f else 0f,
|
|
|
// label = if (isCountriesExpanded) "Show Less" else "Show More"
|
|
@@ -644,34 +656,6 @@ fun ColumnScope.ShowAllLocationsList(
|
|
|
var serverTitle by rememberSaveable { mutableStateOf("") }
|
|
|
var icon by rememberSaveable { mutableStateOf(0) }
|
|
|
|
|
|
-// when (serverTabPager) {
|
|
|
-// 0 -> {
|
|
|
-// serverTitle = serverData[0].name!!
|
|
|
-// icon = if (isCountriesExpanded) R.drawable.dragarrow3x
|
|
|
-// else R.drawable.downarrow3x
|
|
|
-// }
|
|
|
-// 1 -> {
|
|
|
-// serverTitle = serverData[1].name!!
|
|
|
-// icon = if (isStreamingExpanded) R.drawable.dragarrow3x
|
|
|
-// else R.drawable.downarrow3x
|
|
|
-// }
|
|
|
-// 2 -> {
|
|
|
-// serverTitle = serverData[2].name!!
|
|
|
-// icon = if (isDvpnExpanded) R.drawable.dragarrow3x
|
|
|
-// else R.drawable.downarrow3x
|
|
|
-// }
|
|
|
-// 3 -> {
|
|
|
-// serverTitle = serverData[3].name!!
|
|
|
-// icon = if (isP2PExpanded) R.drawable.dragarrow3x
|
|
|
-// else R.drawable.downarrow3x
|
|
|
-// }
|
|
|
-// 4 -> {
|
|
|
-// serverTitle = serverData[4].name!!
|
|
|
-// icon = if (isP2PExpanded) R.drawable.dragarrow3x
|
|
|
-// else R.drawable.downarrow3x
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
serverTitle = serverData[serverTabPager].name!!
|
|
|
icon = if (isServersListExpanded[serverTabPager]) R.drawable.dragarrow3x
|
|
|
else R.drawable.downarrow3x
|
|
@@ -702,26 +686,29 @@ fun ColumnScope.ShowAllLocationsList(
|
|
|
CompositionLocalProvider(
|
|
|
LocalOverscrollConfiguration provides null
|
|
|
) {
|
|
|
- val filterServersData = if (data[serverTabPager].name?.lowercase().toString() == "servers") {
|
|
|
- data.get(serverTabPager).servers?.let {
|
|
|
+ if (data[serverTabPager].name?.lowercase().toString() == "servers") {
|
|
|
+ filterServersList = data.get(serverTabPager).servers?.let {
|
|
|
serverListViewModel.filterServersByISO(
|
|
|
it
|
|
|
)
|
|
|
- }
|
|
|
+ }!!
|
|
|
}
|
|
|
else {
|
|
|
- data.get(serverTabPager).servers?.let {
|
|
|
+ filterServersList = data.get(serverTabPager).servers?.let {
|
|
|
serverListViewModel.filterServersByStreamingServers(
|
|
|
it
|
|
|
)
|
|
|
- }
|
|
|
+ }!!
|
|
|
}
|
|
|
|
|
|
- Log.d("streaming_servers",data[serverTabPager].name?.toString() + filterServersData?.size.toString())
|
|
|
-
|
|
|
-
|
|
|
+// filterServersList = serverListViewModel.liveDataGetServers.observeAsState().value!!
|
|
|
+//
|
|
|
+// filterServersList.let {
|
|
|
+// serverListViewModel._mutableLiveDataGetServers.value = null
|
|
|
+// }
|
|
|
LazyColumn() {
|
|
|
- items(items = filterServersData!!) { country ->
|
|
|
+// Log.d("test_servers_size","size " + filterServersList?.size.toString())
|
|
|
+ items(items = filterServersList) { country ->
|
|
|
CountryItem(server = country, data[serverTabPager].name!!)
|
|
|
}
|
|
|
}
|
|
@@ -835,18 +822,25 @@ fun ColumnScope.ShowSearchBar(
|
|
|
val sheetState = rememberModalBottomSheetState()
|
|
|
val filterList = listOf("Popularity", "Alphabetically")
|
|
|
var selectedFilterList by remember { mutableStateOf(filterList[0]) }
|
|
|
+ val scope = rememberCoroutineScope()
|
|
|
|
|
|
SearchBar(
|
|
|
query = searchText!!,
|
|
|
onQueryChange = {
|
|
|
- searchListViewModel.searchTextChange(it)
|
|
|
+ scope.launch {
|
|
|
+ searchListViewModel.searchTextChange(it)
|
|
|
+ }
|
|
|
},
|
|
|
onSearch = {
|
|
|
- searchListViewModel.isActiveChange(false)
|
|
|
+ scope.launch {
|
|
|
+ searchListViewModel.isActiveChange(false)
|
|
|
+ }
|
|
|
},
|
|
|
active = isActive!!,
|
|
|
onActiveChange = {
|
|
|
- searchListViewModel.isActiveChange(it)
|
|
|
+ scope.launch {
|
|
|
+ searchListViewModel.isActiveChange(it)
|
|
|
+ }
|
|
|
},
|
|
|
placeholder = {
|
|
|
Text(
|
|
@@ -1070,4 +1064,35 @@ fun ServerListPreview() {
|
|
|
// }
|
|
|
// }
|
|
|
// }
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// when (serverTabPager) {
|
|
|
+// 0 -> {
|
|
|
+// serverTitle = serverData[0].name!!
|
|
|
+// icon = if (isCountriesExpanded) R.drawable.dragarrow3x
|
|
|
+// else R.drawable.downarrow3x
|
|
|
+// }
|
|
|
+// 1 -> {
|
|
|
+// serverTitle = serverData[1].name!!
|
|
|
+// icon = if (isStreamingExpanded) R.drawable.dragarrow3x
|
|
|
+// else R.drawable.downarrow3x
|
|
|
+// }
|
|
|
+// 2 -> {
|
|
|
+// serverTitle = serverData[2].name!!
|
|
|
+// icon = if (isDvpnExpanded) R.drawable.dragarrow3x
|
|
|
+// else R.drawable.downarrow3x
|
|
|
+// }
|
|
|
+// 3 -> {
|
|
|
+// serverTitle = serverData[3].name!!
|
|
|
+// icon = if (isP2PExpanded) R.drawable.dragarrow3x
|
|
|
+// else R.drawable.downarrow3x
|
|
|
+// }
|
|
|
+// 4 -> {
|
|
|
+// serverTitle = serverData[4].name!!
|
|
|
+// icon = if (isP2PExpanded) R.drawable.dragarrow3x
|
|
|
+// else R.drawable.downarrow3x
|
|
|
+// }
|
|
|
// }
|