|
@@ -60,69 +60,61 @@ fun ServerListTV(navHostController: NavHostController) {
|
|
|
) {
|
|
|
HeaderRowSL(navHostController = navHostController)
|
|
|
|
|
|
-// var locations = ArrayList<Server>()
|
|
|
-// var dedicatedIP = ArrayList<Server>()
|
|
|
-// var streaming = ArrayList<Server>()
|
|
|
-// var dvpn = ArrayList<Server>()
|
|
|
-// var p2p = ArrayList<Server>()
|
|
|
+// var locations by remember { mutableStateOf(ArrayList<Server>()) }
|
|
|
+// var dedicatedIP by remember { mutableStateOf(ArrayList<Server>()) }
|
|
|
+// var streaming by remember { mutableStateOf(ArrayList<Server>()) }
|
|
|
+// var dvpn by remember { mutableStateOf(ArrayList<Server>()) }
|
|
|
+// var p2p by remember { mutableStateOf(ArrayList<Server>()) }
|
|
|
|
|
|
- var locations by remember { mutableStateOf(ArrayList<Server>()) }
|
|
|
- var dedicatedIP by remember { mutableStateOf(ArrayList<Server>()) }
|
|
|
- var streaming by remember { mutableStateOf(ArrayList<Server>()) }
|
|
|
- var dvpn by remember { mutableStateOf(ArrayList<Server>()) }
|
|
|
- var p2p by remember { mutableStateOf(ArrayList<Server>()) }
|
|
|
+// var isLocationsEnabled by remember { mutableStateOf(false) }
|
|
|
+// var isDedicatedIpEnabled by remember { mutableStateOf(false) }
|
|
|
+// var isStreamingEnabled by remember { mutableStateOf(false) }
|
|
|
+// var isDvpnEnabled by remember { mutableStateOf(false) }
|
|
|
+// var isP2pEnabled by remember { mutableStateOf(false) }
|
|
|
|
|
|
-
|
|
|
- var isLocationsEnabled by remember { mutableStateOf(false) }
|
|
|
- var isDedicatedIpEnabled by remember { mutableStateOf(false) }
|
|
|
- var isStreamingEnabled by remember { mutableStateOf(false) }
|
|
|
- var isDvpnEnabled by remember { mutableStateOf(false) }
|
|
|
- var isP2pEnabled by remember { mutableStateOf(false) }
|
|
|
-
|
|
|
- LaunchedEffect(key1 = Unit) {
|
|
|
- val countries = serverListViewModelSplash.liveDataGetServersGlobal.value
|
|
|
- countries?.forEachIndexed { index, serverData ->
|
|
|
- Log.d("test_serverlist_tv","$index ${serverData?.name} ${serverData?.servers?.size}")
|
|
|
- if (serverData?.name?.equals("Servers") == true) {
|
|
|
- serverData.servers?.let { locations = it }
|
|
|
- if (locations.size > 0) isLocationsEnabled = true
|
|
|
- }
|
|
|
- else if (serverData?.name?.equals("Dedicated IP") == true) {
|
|
|
- serverData.servers?.let { dedicatedIP = it }
|
|
|
- if (dedicatedIP.size > 0) isDedicatedIpEnabled = true
|
|
|
- }
|
|
|
- else if (serverData?.name?.equals("Streaming") == true) {
|
|
|
- serverData.servers?.let { streaming = it }
|
|
|
- if (streaming.size > 0) isStreamingEnabled = true
|
|
|
- }
|
|
|
- else if (serverData?.name?.equals("D-VPN") == true) {
|
|
|
- serverData.servers?.let { dvpn = it }
|
|
|
- if (dvpn.size > 0) isDvpnEnabled = true
|
|
|
- }
|
|
|
- else if (serverData?.name?.equals("P2P") == true) {
|
|
|
- serverData.servers?.let { p2p = it }
|
|
|
- if (p2p.size > 0) isP2pEnabled = true
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+// LaunchedEffect(key1 = Unit) {
|
|
|
+// val countries = serverListViewModelSplash.liveDataGetServersGlobal.value
|
|
|
+// countries?.forEachIndexed { index, serverData ->
|
|
|
+// Log.d("test_serverlist_tv","$index ${serverData?.name} ${serverData?.servers?.size}")
|
|
|
+// if (serverData?.name?.equals("Servers") == true) {
|
|
|
+// serverData.servers?.let { locations = it }
|
|
|
+// if (locations.size > 0) isLocationsEnabled.value = true
|
|
|
+// }
|
|
|
+// else if (serverData?.name?.equals("Dedicated IP") == true) {
|
|
|
+// serverData.servers?.let { dedicatedIP = it }
|
|
|
+// if (dedicatedIP.size > 0) isDedicatedIpEnabled.value = true
|
|
|
+// }
|
|
|
+// else if (serverData?.name?.equals("Streaming") == true) {
|
|
|
+// serverData.servers?.let { streaming = it }
|
|
|
+// if (streaming.size > 0) isStreamingEnabled.value = true
|
|
|
+// }
|
|
|
+// else if (serverData?.name?.equals("D-VPN") == true) {
|
|
|
+// serverData.servers?.let { dvpn = it }
|
|
|
+// if (dvpn.size > 0) isDvpnEnabled.value = true
|
|
|
+// }
|
|
|
+// else if (serverData?.name?.equals("P2P") == true) {
|
|
|
+// serverData.servers?.let { p2p = it }
|
|
|
+// if (p2p.size > 0) isP2pEnabled.value = true
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
Column(
|
|
|
modifier = Modifier
|
|
|
.fillMaxSize()
|
|
|
- .padding(top = 80.dp, start = 24.dp, end = 24.dp, bottom = 24.dp)
|
|
|
+ .padding(top = 60.dp, start = 24.dp, end = 24.dp, bottom = 24.dp)
|
|
|
.verticalScroll(rememberScrollState())
|
|
|
.background(Color.Transparent)
|
|
|
) {
|
|
|
val topPadding = 25.dp
|
|
|
- Spacer(modifier = Modifier.height(0.dp))
|
|
|
|
|
|
- if (isLocationsEnabled) {
|
|
|
+ if (isLocationsEnabled.value) {
|
|
|
Text(
|
|
|
- text = "Top Locations ${locations.size}",
|
|
|
+ text = "Top Locations",
|
|
|
style = MaterialTheme.typography.labelLarge,
|
|
|
color = colorResource(id = R.color.dark_blue_gray_text),
|
|
|
modifier = Modifier
|
|
|
- .padding(top = topPadding, start = 0.dp)
|
|
|
+ .padding(top = 0.dp, start = 0.dp)
|
|
|
.focusable()
|
|
|
)
|
|
|
LazyRow(
|
|
@@ -135,7 +127,7 @@ fun ServerListTV(navHostController: NavHostController) {
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
- if (isDedicatedIpEnabled) {
|
|
|
+ if (isDedicatedIpEnabled.value) {
|
|
|
Text(
|
|
|
text = "Dedicated IP",
|
|
|
style = MaterialTheme.typography.labelLarge,
|
|
@@ -153,7 +145,7 @@ fun ServerListTV(navHostController: NavHostController) {
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
- if (isStreamingEnabled) {
|
|
|
+ if (isStreamingEnabled.value) {
|
|
|
Text(
|
|
|
text = "Streaming",
|
|
|
style = MaterialTheme.typography.labelLarge,
|
|
@@ -171,7 +163,7 @@ fun ServerListTV(navHostController: NavHostController) {
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
- if (isDvpnEnabled) {
|
|
|
+ if (isDvpnEnabled.value) {
|
|
|
Text(
|
|
|
text = "D-VPN",
|
|
|
style = MaterialTheme.typography.labelLarge,
|
|
@@ -189,7 +181,7 @@ fun ServerListTV(navHostController: NavHostController) {
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
- if (isP2pEnabled) {
|
|
|
+ if (isP2pEnabled.value) {
|
|
|
Text(
|
|
|
text = "P2P",
|
|
|
style = MaterialTheme.typography.labelLarge,
|
|
@@ -214,44 +206,44 @@ fun ServerListTV(navHostController: NavHostController) {
|
|
|
@Composable
|
|
|
fun BoxScope.HeaderRowSL(
|
|
|
navHostController: NavHostController) {
|
|
|
- val focusRequester1 = remember { FocusRequester() }
|
|
|
- var isButtonFocused by remember { mutableStateOf(false) }
|
|
|
- LaunchedEffect(key1 = Unit) {
|
|
|
- focusRequester1.requestFocus()
|
|
|
- }
|
|
|
+// val focusRequester1 = remember { FocusRequester() }
|
|
|
+// var isButtonFocused by remember { mutableStateOf(false) }
|
|
|
+// LaunchedEffect(key1 = Unit) {
|
|
|
+// focusRequester1.requestFocus()
|
|
|
+// }
|
|
|
|
|
|
- IconButton(
|
|
|
- onClick = {
|
|
|
- navHostController.popBackStack()
|
|
|
- },
|
|
|
- modifier = Modifier
|
|
|
- .align(Alignment.TopStart)
|
|
|
- .padding(top = 25.dp)
|
|
|
- .padding(start = 16.dp)
|
|
|
- .size(30.dp, 32.dp)
|
|
|
- .background(if (isButtonFocused) Color.LightGray else Color.Transparent)
|
|
|
- .focusRequester(focusRequester1)
|
|
|
- .onFocusChanged {
|
|
|
- isButtonFocused = it.isFocused
|
|
|
- }
|
|
|
- .focusable()
|
|
|
- .clickable {
|
|
|
- navHostController.popBackStack()
|
|
|
- }
|
|
|
- ) {
|
|
|
- Icon(
|
|
|
- imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
|
|
- contentDescription = "Arrow-Back",
|
|
|
- tint = colorResource(id = R.color.dark_blue_gray_text),
|
|
|
-// tint = MaterialTheme.colorScheme.primary,
|
|
|
- modifier = Modifier.size(30.dp, 32.dp)
|
|
|
- )
|
|
|
- }
|
|
|
+// IconButton(
|
|
|
+// onClick = {
|
|
|
+// navHostController.popBackStack()
|
|
|
+// },
|
|
|
+// modifier = Modifier
|
|
|
+// .align(Alignment.TopStart)
|
|
|
+// .padding(top = 25.dp)
|
|
|
+// .padding(start = 16.dp)
|
|
|
+// .size(30.dp, 32.dp)
|
|
|
+// .background(if (isButtonFocused) Color.LightGray else Color.Transparent)
|
|
|
+// .focusRequester(focusRequester1)
|
|
|
+// .onFocusChanged {
|
|
|
+// isButtonFocused = it.isFocused
|
|
|
+// }
|
|
|
+// .focusable()
|
|
|
+// .clickable {
|
|
|
+// navHostController.popBackStack()
|
|
|
+// }
|
|
|
+// ) {
|
|
|
+// Icon(
|
|
|
+// imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
|
|
+// contentDescription = "Arrow-Back",
|
|
|
+// tint = colorResource(id = R.color.dark_blue_gray_text),
|
|
|
+//// tint = MaterialTheme.colorScheme.primary,
|
|
|
+// modifier = Modifier.size(30.dp, 32.dp)
|
|
|
+// )
|
|
|
+// }
|
|
|
Surface(
|
|
|
modifier = Modifier
|
|
|
- .padding(top = 25.dp)
|
|
|
+ .padding(start = 14.dp, top = 16.dp)
|
|
|
.height(32.dp)
|
|
|
- .align(Alignment.TopCenter)
|
|
|
+ .align(Alignment.TopStart)
|
|
|
.padding(5.dp),
|
|
|
color = colorResource(id = R.color.transparent)
|
|
|
) {
|