|
@@ -0,0 +1,145 @@
|
|
|
+package com.vpn.fastestvpnservice.screensTV.settingsScreenAll
|
|
|
+
|
|
|
+import android.util.Log
|
|
|
+import android.widget.Toast
|
|
|
+import androidx.compose.foundation.background
|
|
|
+import androidx.compose.foundation.layout.Box
|
|
|
+import androidx.compose.foundation.layout.Column
|
|
|
+import androidx.compose.foundation.layout.fillMaxSize
|
|
|
+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.lazy.LazyColumn
|
|
|
+import androidx.compose.foundation.lazy.LazyRow
|
|
|
+import androidx.compose.foundation.lazy.itemsIndexed
|
|
|
+import androidx.compose.foundation.rememberScrollState
|
|
|
+import androidx.compose.foundation.verticalScroll
|
|
|
+import androidx.compose.material3.DockedSearchBar
|
|
|
+import androidx.compose.material3.ExperimentalMaterial3Api
|
|
|
+import androidx.compose.material3.Icon
|
|
|
+import androidx.compose.material3.MaterialTheme
|
|
|
+import androidx.compose.material3.SearchBarDefaults
|
|
|
+import androidx.compose.material3.Text
|
|
|
+import androidx.compose.material3.TextFieldDefaults
|
|
|
+import androidx.compose.runtime.Composable
|
|
|
+import androidx.compose.runtime.getValue
|
|
|
+import androidx.compose.runtime.livedata.observeAsState
|
|
|
+import androidx.compose.runtime.mutableStateOf
|
|
|
+import androidx.compose.runtime.remember
|
|
|
+import androidx.compose.runtime.rememberCoroutineScope
|
|
|
+import androidx.compose.runtime.setValue
|
|
|
+import androidx.compose.ui.Modifier
|
|
|
+import androidx.compose.ui.graphics.Color
|
|
|
+import androidx.compose.ui.platform.LocalContext
|
|
|
+import androidx.compose.ui.res.colorResource
|
|
|
+import androidx.compose.ui.res.painterResource
|
|
|
+import androidx.compose.ui.unit.dp
|
|
|
+import androidx.navigation.NavHostController
|
|
|
+import com.vpn.fastestvpnservice.R
|
|
|
+import com.vpn.fastestvpnservice.customItems.SearchServerItemTV
|
|
|
+import com.vpn.fastestvpnservice.customItems.ServerItemTV
|
|
|
+import com.vpn.fastestvpnservice.screens.searchListViewModelSplash
|
|
|
+import com.vpn.fastestvpnservice.screens.serverListViewModelSplash
|
|
|
+import com.vpn.fastestvpnservice.screensTV.HeaderRowSL
|
|
|
+import com.vpn.fastestvpnservice.screensTV.locations
|
|
|
+import kotlinx.coroutines.launch
|
|
|
+
|
|
|
+@OptIn(ExperimentalMaterial3Api::class)
|
|
|
+@Composable
|
|
|
+fun AnySpecificScreenTV(navHostController: NavHostController) {
|
|
|
+ val context = LocalContext.current
|
|
|
+// val searchListViewModel = searchListViewModelSplash
|
|
|
+// var searchText1 by remember { mutableStateOf("") }
|
|
|
+// val isActive = searchListViewModel.isActive.observeAsState().value
|
|
|
+// val scope = rememberCoroutineScope()
|
|
|
+
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxSize()
|
|
|
+ .background(
|
|
|
+ color = colorResource(id = R.color.background_color_gray)
|
|
|
+ )
|
|
|
+ .padding(bottom = 0.dp)
|
|
|
+
|
|
|
+ ) {
|
|
|
+ HeaderRowSL(navHostController = navHostController, title = "All Locations")
|
|
|
+
|
|
|
+// DockedSearchBar(
|
|
|
+// query = searchText1,
|
|
|
+// onQueryChange = {
|
|
|
+// searchText1 = it
|
|
|
+//// scope.launch {
|
|
|
+//// searchListViewModel.searchTextChange(it)
|
|
|
+//// }
|
|
|
+// },
|
|
|
+// onSearch = {
|
|
|
+// scope.launch {
|
|
|
+// searchListViewModel.isActiveChange(state = false, true)
|
|
|
+// }
|
|
|
+//// keyboardController?.hide()
|
|
|
+// },
|
|
|
+// active = isActive!!,
|
|
|
+// onActiveChange = {
|
|
|
+// scope.launch {
|
|
|
+// searchListViewModel.isActiveChange(it, isFromSettings = true)
|
|
|
+// }
|
|
|
+// },
|
|
|
+// placeholder = {
|
|
|
+// Text(
|
|
|
+// text = "Search Location",
|
|
|
+// style = MaterialTheme.typography.displaySmall,
|
|
|
+// color = colorResource(id = R.color.dark_blue_gray_text)
|
|
|
+// )
|
|
|
+// },
|
|
|
+// leadingIcon = {
|
|
|
+// Icon(
|
|
|
+// painter = painterResource(id = R.drawable.search3x),
|
|
|
+// contentDescription = "Search Icon",
|
|
|
+//
|
|
|
+// modifier = Modifier
|
|
|
+// .size(21.dp)
|
|
|
+// )
|
|
|
+// },
|
|
|
+// colors = SearchBarDefaults.colors(
|
|
|
+// containerColor = colorResource(id = R.color.white),
|
|
|
+// dividerColor = Color.Transparent,
|
|
|
+// inputFieldColors = TextFieldDefaults.colors(
|
|
|
+// focusedTextColor = colorResource(id = R.color.dark_blue_gray_text),
|
|
|
+// unfocusedTextColor = colorResource(id = R.color.dark_blue_gray_text),
|
|
|
+// unfocusedIndicatorColor = colorResource(id = R.color.dark_blue_gray_text),
|
|
|
+// focusedIndicatorColor = colorResource(id = R.color.dark_blue_gray_text),
|
|
|
+// disabledIndicatorColor = colorResource(id = R.color.dark_blue_gray_text),
|
|
|
+// cursorColor = colorResource(id = R.color.dark_blue_gray_text),
|
|
|
+// )
|
|
|
+// ),
|
|
|
+// modifier = Modifier
|
|
|
+// .fillMaxWidth()
|
|
|
+// .height(50.dp)
|
|
|
+// .padding(horizontal = 10.dp)
|
|
|
+// .padding(top = 60.dp)
|
|
|
+// .background(Color.Transparent)
|
|
|
+// ) {}
|
|
|
+
|
|
|
+ val listAll = serverListViewModelSplash.liveDataAllServers.observeAsState().value
|
|
|
+ Column(
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxSize()
|
|
|
+ .padding(top = 80.dp, start = 24.dp, end = 24.dp, bottom = 24.dp)
|
|
|
+// .verticalScroll(rememberScrollState())
|
|
|
+ .background(Color.Transparent)
|
|
|
+ ) {
|
|
|
+ LazyColumn(
|
|
|
+ modifier = Modifier
|
|
|
+ .padding(top = 10.dp, start = 0.dp, end = 0.dp)
|
|
|
+ .background(Color.Transparent)
|
|
|
+ ) {
|
|
|
+ listAll?.let {
|
|
|
+ itemsIndexed(items = listAll, itemContent = { index, server ->
|
|
|
+ SearchServerItemTV(server = server, navHostController = navHostController, serverPing = server.ping)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|