|
@@ -5,15 +5,10 @@ import android.util.Log
|
|
|
import androidx.compose.foundation.BorderStroke
|
|
|
import androidx.compose.foundation.background
|
|
|
import androidx.compose.foundation.border
|
|
|
-import androidx.compose.foundation.clickable
|
|
|
-import androidx.compose.foundation.gestures.detectTapGestures
|
|
|
-import androidx.compose.foundation.interaction.MutableInteractionSource
|
|
|
import androidx.compose.foundation.layout.Arrangement
|
|
|
import androidx.compose.foundation.layout.Box
|
|
|
import androidx.compose.foundation.layout.BoxScope
|
|
|
import androidx.compose.foundation.layout.Column
|
|
|
-import androidx.compose.foundation.layout.Row
|
|
|
-import androidx.compose.foundation.layout.Spacer
|
|
|
import androidx.compose.foundation.layout.fillMaxHeight
|
|
|
import androidx.compose.foundation.layout.fillMaxSize
|
|
|
import androidx.compose.foundation.layout.fillMaxWidth
|
|
@@ -21,55 +16,38 @@ import androidx.compose.foundation.layout.height
|
|
|
import androidx.compose.foundation.layout.padding
|
|
|
import androidx.compose.foundation.layout.size
|
|
|
import androidx.compose.foundation.layout.wrapContentHeight
|
|
|
-import androidx.compose.foundation.shape.CircleShape
|
|
|
+import androidx.compose.foundation.lazy.LazyColumn
|
|
|
+import androidx.compose.foundation.lazy.items
|
|
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
|
|
import androidx.compose.material.Icon
|
|
|
import androidx.compose.material.IconButton
|
|
|
import androidx.compose.material.Surface
|
|
|
import androidx.compose.material.Text
|
|
|
-import androidx.compose.material.icons.Icons
|
|
|
-import androidx.compose.material.icons.filled.Add
|
|
|
-import androidx.compose.material.icons.filled.Minimize
|
|
|
-import androidx.compose.material.icons.filled.NetworkCell
|
|
|
-import androidx.compose.material.icons.filled.Wifi
|
|
|
import androidx.compose.material3.MaterialTheme
|
|
|
import androidx.compose.runtime.Composable
|
|
|
-import androidx.compose.runtime.LaunchedEffect
|
|
|
import androidx.compose.runtime.MutableState
|
|
|
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.saveable.rememberSaveable
|
|
|
import androidx.compose.runtime.setValue
|
|
|
import androidx.compose.ui.Alignment
|
|
|
import androidx.compose.ui.Modifier
|
|
|
import androidx.compose.ui.draw.alpha
|
|
|
-import androidx.compose.ui.draw.clip
|
|
|
-import androidx.compose.ui.draw.paint
|
|
|
import androidx.compose.ui.graphics.Color
|
|
|
import androidx.compose.ui.graphics.toArgb
|
|
|
-import androidx.compose.ui.input.pointer.pointerInput
|
|
|
-import androidx.compose.ui.layout.ContentScale
|
|
|
import androidx.compose.ui.platform.LocalContext
|
|
|
import androidx.compose.ui.platform.LocalView
|
|
|
import androidx.compose.ui.res.colorResource
|
|
|
import androidx.compose.ui.res.painterResource
|
|
|
-import androidx.compose.ui.text.style.TextOverflow
|
|
|
import androidx.compose.ui.unit.dp
|
|
|
-import androidx.lifecycle.viewmodel.compose.viewModel
|
|
|
import androidx.navigation.NavHostController
|
|
|
import com.vpn.fastestvpnservice.R
|
|
|
-import com.vpn.fastestvpnservice.beans.toChangeServer
|
|
|
-import com.vpn.fastestvpnservice.constants.smartConnect
|
|
|
import com.vpn.fastestvpnservice.customItems.AutoConnectItem
|
|
|
+import com.vpn.fastestvpnservice.customItems.AutoConnectWifiItem
|
|
|
import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
|
|
|
import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.AddRowSettingsSmart
|
|
|
-import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.onServer
|
|
|
-import com.vpn.fastestvpnservice.screens.serverListViewModelSplash
|
|
|
-import com.vpn.fastestvpnservice.sealedClass.Screen
|
|
|
-import com.vpn.fastestvpnservice.utils.Utils
|
|
|
-import com.vpn.fastestvpnservice.viewmodels.SettingsViewModel
|
|
|
+import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.settingsViewModel
|
|
|
|
|
|
var selectedSmart: MutableState<String> = mutableStateOf("")
|
|
|
|
|
@@ -80,15 +58,9 @@ fun AutoConnectScreen(navHostController: NavHostController) {
|
|
|
selectedSmart.value = basePreferenceHelper.getSmartList()
|
|
|
var isAdded by rememberSaveable { mutableStateOf(false) }
|
|
|
var isAddedWifi by rememberSaveable { mutableStateOf(false) }
|
|
|
- val settingsViewModel = viewModel() {
|
|
|
- SettingsViewModel(context = context)
|
|
|
- }
|
|
|
-
|
|
|
- LaunchedEffect(key1 = Unit) {
|
|
|
- settingsViewModel.getConnectedWifi()
|
|
|
- }
|
|
|
|
|
|
- val connectedWifiSsid = settingsViewModel.liveDataConnectedWifi.observeAsState().value
|
|
|
+ val wifiList = settingsViewModel.liveDataConnectedWifi.observeAsState().value
|
|
|
+ Log.d("autoconnect", "wifiList ACS = ${wifiList.toString()}")
|
|
|
|
|
|
Box(
|
|
|
modifier = Modifier
|
|
@@ -196,92 +168,15 @@ fun AutoConnectScreen(navHostController: NavHostController) {
|
|
|
.alpha(1f)
|
|
|
)
|
|
|
|
|
|
- AutoConnectItem()
|
|
|
+ val mobileNetworkState = basePreferenceHelper.getMobileNetworkState()
|
|
|
|
|
|
- Surface(
|
|
|
- modifier = Modifier
|
|
|
- .padding(top = 20.dp, end = 27.dp)
|
|
|
- .height(1.dp)
|
|
|
- .fillMaxWidth()
|
|
|
- .alpha(0.6F),
|
|
|
- color = colorResource(id = R.color.gray_icon)
|
|
|
- ) {}
|
|
|
+ AutoConnectItem(mobileNetworkState, basePreferenceHelper)
|
|
|
|
|
|
- Box(
|
|
|
- modifier = Modifier
|
|
|
- .fillMaxWidth()
|
|
|
- .padding(start = 0.dp, end = 27.dp, top = 20.dp)
|
|
|
- .background(Color.Transparent)
|
|
|
- .clickable(
|
|
|
- indication = null,
|
|
|
- interactionSource = remember { MutableInteractionSource() }
|
|
|
- ) {},
|
|
|
- contentAlignment = Alignment.CenterStart
|
|
|
- ) {
|
|
|
- Icon(
|
|
|
- imageVector = Icons.Default.Wifi,
|
|
|
- contentDescription = "Wifi",
|
|
|
- tint = colorResource(id = R.color.gray_icon),
|
|
|
- modifier = Modifier
|
|
|
- .padding(top = 0.dp, bottom = 0.dp)
|
|
|
- .size(20.dp)
|
|
|
- .align(Alignment.CenterStart)
|
|
|
- )
|
|
|
|
|
|
- Surface(
|
|
|
- modifier = Modifier
|
|
|
- .padding(start = 40.dp, bottom = 0.dp, end = 110.dp)
|
|
|
- .align(Alignment.CenterStart)
|
|
|
- .background(Color.Transparent),
|
|
|
- color = Color.Transparent
|
|
|
- ) {
|
|
|
- Text(
|
|
|
- text = connectedWifiSsid ?: "",
|
|
|
- style = MaterialTheme.typography.labelMedium,
|
|
|
- color = colorResource(id = R.color.gray_icon),
|
|
|
- maxLines = 1,
|
|
|
- overflow = TextOverflow.Ellipsis,
|
|
|
- modifier = Modifier
|
|
|
- .align(Alignment.CenterStart)
|
|
|
- )
|
|
|
- }
|
|
|
- val isAddedText = if (isAddedWifi) "Remove" else "Add"
|
|
|
- val isAddedColor = if (isAddedWifi) colorResource(id = R.color.Red) else colorResource(id = R.color.LightSeaGreen)
|
|
|
-
|
|
|
- Row(
|
|
|
- modifier = Modifier
|
|
|
- .padding(bottom = 0.dp, end = 0.dp)
|
|
|
- .align(Alignment.CenterEnd)
|
|
|
- .background(Color.Transparent)
|
|
|
- .pointerInput(Unit) {
|
|
|
- detectTapGestures {
|
|
|
- isAddedWifi = !isAddedWifi
|
|
|
- }
|
|
|
- },
|
|
|
- verticalAlignment = Alignment.CenterVertically
|
|
|
- ) {
|
|
|
- Text(
|
|
|
- text = isAddedText,
|
|
|
- style = MaterialTheme.typography.displayMedium,
|
|
|
- color = isAddedColor,
|
|
|
- modifier = Modifier
|
|
|
- .padding(end = 8.dp, bottom = 0.dp)
|
|
|
-
|
|
|
- )
|
|
|
- IconButton(
|
|
|
- modifier = Modifier
|
|
|
- .size(20.dp),
|
|
|
- onClick = {
|
|
|
- isAddedWifi = !isAddedWifi
|
|
|
- }
|
|
|
- ) {
|
|
|
- Icon(
|
|
|
- painter = if (isAddedWifi) painterResource(id = R.drawable.remove_circle_outline_24)
|
|
|
- else painterResource(id = R.drawable.add_circle_outline_24),
|
|
|
- contentDescription = "Server Logo",
|
|
|
- tint = isAddedColor,
|
|
|
- modifier = Modifier.size(20.dp)
|
|
|
- )
|
|
|
+ wifiList?.let {
|
|
|
+ LazyColumn() {
|
|
|
+ items(items = wifiList) {
|
|
|
+ AutoConnectWifiItem(it, basePreferenceHelper)
|
|
|
}
|
|
|
}
|
|
|
}
|