|
@@ -1,14 +1,19 @@
|
|
|
package com.vpn.fastestvpnservice.screens.settingsScreenAll
|
|
|
|
|
|
import android.app.Activity
|
|
|
+import android.os.Build
|
|
|
+import android.provider.Settings
|
|
|
import android.util.Log
|
|
|
import androidx.compose.foundation.BorderStroke
|
|
|
+import androidx.compose.foundation.Image
|
|
|
import androidx.compose.foundation.background
|
|
|
import androidx.compose.foundation.border
|
|
|
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
|
|
@@ -24,6 +29,8 @@ import androidx.compose.material.IconButton
|
|
|
import androidx.compose.material.Surface
|
|
|
import androidx.compose.material.Text
|
|
|
import androidx.compose.material3.MaterialTheme
|
|
|
+import androidx.compose.material3.Switch
|
|
|
+import androidx.compose.material3.SwitchDefaults
|
|
|
import androidx.compose.runtime.Composable
|
|
|
import androidx.compose.runtime.MutableState
|
|
|
import androidx.compose.runtime.getValue
|
|
@@ -34,7 +41,9 @@ 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.scale
|
|
|
import androidx.compose.ui.graphics.Color
|
|
|
+import androidx.compose.ui.graphics.ColorFilter
|
|
|
import androidx.compose.ui.graphics.toArgb
|
|
|
import androidx.compose.ui.platform.LocalContext
|
|
|
import androidx.compose.ui.platform.LocalView
|
|
@@ -58,6 +67,7 @@ fun AutoConnectScreen(navHostController: NavHostController) {
|
|
|
selectedSmart.value = basePreferenceHelper.getSmartList()
|
|
|
var isAdded by rememberSaveable { mutableStateOf(false) }
|
|
|
var isAddedWifi by rememberSaveable { mutableStateOf(false) }
|
|
|
+ var isSwitch by rememberSaveable { mutableStateOf(basePreferenceHelper.getAutoConnectState()) }
|
|
|
|
|
|
val wifiList = settingsViewModel.liveDataConnectedWifi.observeAsState().value
|
|
|
val connectedWifiSsid = settingsViewModel.liveDataConnectedSsid.observeAsState().value
|
|
@@ -78,107 +88,160 @@ fun AutoConnectScreen(navHostController: NavHostController) {
|
|
|
|
|
|
HeaderRowACS(navHostController = navHostController, basePreferenceHelper)
|
|
|
|
|
|
- Column(
|
|
|
- verticalArrangement = Arrangement.Top,
|
|
|
- horizontalAlignment = Alignment.Start,
|
|
|
+ Row(
|
|
|
modifier = Modifier
|
|
|
- .padding(top = 120.dp, start = 16.dp, end = 0.dp)
|
|
|
- .fillMaxSize()
|
|
|
+ .fillMaxWidth()
|
|
|
+ .padding(top = 120.dp, end = 27.dp)
|
|
|
.background(Color.Transparent)
|
|
|
+ .height(30.dp),
|
|
|
+ horizontalArrangement = Arrangement.Start,
|
|
|
+ verticalAlignment = Alignment.CenterVertically
|
|
|
) {
|
|
|
- Text(
|
|
|
- text = context.getString(R.string.preferred_location),
|
|
|
- color = MaterialTheme.colorScheme.primary,
|
|
|
- style = MaterialTheme.typography.titleSmall,
|
|
|
- modifier = Modifier
|
|
|
- .padding(end = 27.dp)
|
|
|
- )
|
|
|
+ Surface(
|
|
|
+ modifier = Modifier.padding(start = 0.dp),
|
|
|
+ color = Color.Transparent
|
|
|
+ ) {
|
|
|
+ Text(text = "Enable Auto-connect",
|
|
|
+ style = MaterialTheme.typography.titleSmall,
|
|
|
+ color = MaterialTheme.colorScheme.primary,
|
|
|
+ maxLines = 1,
|
|
|
+ modifier = Modifier
|
|
|
+ .padding(start = 16.dp, end = 0.dp)
|
|
|
+ .weight(1f)
|
|
|
+ )
|
|
|
+ }
|
|
|
|
|
|
- Text(
|
|
|
- text = context.getString(R.string.auto_connect_location),
|
|
|
- color = colorResource(id = R.color.gray_icon),
|
|
|
- style = MaterialTheme.typography.displaySmall,
|
|
|
+ Spacer(modifier = Modifier.weight(1f))
|
|
|
+
|
|
|
+ Surface(
|
|
|
modifier = Modifier
|
|
|
- .padding(top = 5.dp, end = 27.dp)
|
|
|
- .alpha(1f)
|
|
|
- )
|
|
|
+ .padding(start = 0.dp, end = 0.dp)
|
|
|
+ .align(Alignment.CenterVertically),
|
|
|
+ color = Color.Transparent
|
|
|
+ ) {
|
|
|
|
|
|
- AddRowSettingsSmart(
|
|
|
- icon = R.drawable.smart_connect3x,
|
|
|
- text = selectedSmart.value,
|
|
|
- isRowShown = true,
|
|
|
- isSheetShown = false,
|
|
|
- navHostController = navHostController,
|
|
|
- topPadding = 20.dp
|
|
|
- )
|
|
|
+ Switch(
|
|
|
+ checked = isSwitch,
|
|
|
+ onCheckedChange = { state ->
|
|
|
+ isSwitch = state
|
|
|
+ basePreferenceHelper.saveAutoConnectState(isSwitch)
|
|
|
+ },
|
|
|
+ modifier = Modifier.scale(0.8F),
|
|
|
+ colors = SwitchDefaults.colors(
|
|
|
+ checkedThumbColor = Color.White,
|
|
|
+ checkedTrackColor = MaterialTheme.colorScheme.surfaceContainerLowest,
|
|
|
+ uncheckedThumbColor = MaterialTheme.colorScheme.onSecondaryContainer,
|
|
|
+ uncheckedTrackColor = MaterialTheme.colorScheme.surfaceContainerHighest,
|
|
|
+ uncheckedBorderColor = MaterialTheme.colorScheme.surfaceContainerHighest
|
|
|
+ ),
|
|
|
+ thumbContent = {}
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- Box(
|
|
|
+ if (isSwitch) {
|
|
|
+ Column(
|
|
|
+ verticalArrangement = Arrangement.Top,
|
|
|
+ horizontalAlignment = Alignment.Start,
|
|
|
modifier = Modifier
|
|
|
- .wrapContentHeight()
|
|
|
- .fillMaxWidth()
|
|
|
- .padding(top = 20.dp, end = 27.dp)
|
|
|
- .border(
|
|
|
- border = BorderStroke(1.dp, colorResource(id = R.color.graywidget)),
|
|
|
- shape = RoundedCornerShape(14.dp)
|
|
|
- )
|
|
|
- .background(
|
|
|
- shape = RoundedCornerShape(14.dp),
|
|
|
- color = MaterialTheme.colorScheme.onBackground
|
|
|
- )
|
|
|
+ .padding(top = 170.dp, start = 16.dp, end = 0.dp)
|
|
|
+ .fillMaxSize()
|
|
|
+ .background(Color.Transparent)
|
|
|
) {
|
|
|
Text(
|
|
|
- text = context.getString(R.string.auto_connect_functionality),
|
|
|
+ text = context.getString(R.string.preferred_location),
|
|
|
+ color = MaterialTheme.colorScheme.primary,
|
|
|
+ style = MaterialTheme.typography.titleSmall,
|
|
|
+ modifier = Modifier
|
|
|
+ .padding(end = 27.dp)
|
|
|
+ )
|
|
|
+
|
|
|
+ Text(
|
|
|
+ text = context.getString(R.string.auto_connect_location),
|
|
|
color = colorResource(id = R.color.gray_icon),
|
|
|
style = MaterialTheme.typography.displaySmall,
|
|
|
modifier = Modifier
|
|
|
- .padding(all = 10.dp)
|
|
|
+ .padding(top = 5.dp, end = 27.dp)
|
|
|
.alpha(1f)
|
|
|
)
|
|
|
- }
|
|
|
|
|
|
- Surface(
|
|
|
- modifier = Modifier
|
|
|
- .padding(top = 20.dp, end = 27.dp)
|
|
|
- .height(1.dp)
|
|
|
- .fillMaxWidth()
|
|
|
- .alpha(0.5F),
|
|
|
- color = colorResource(id = R.color.gray_icon)
|
|
|
- ) {}
|
|
|
-
|
|
|
- Text(
|
|
|
- text = context.getString(R.string.trusted_network),
|
|
|
- color = MaterialTheme.colorScheme.primary,
|
|
|
- style = MaterialTheme.typography.titleSmall,
|
|
|
- modifier = Modifier.padding(top = 20.dp)
|
|
|
- )
|
|
|
+ AddRowSettingsSmart(
|
|
|
+ icon = R.drawable.smart_connect3x,
|
|
|
+ text = selectedSmart.value,
|
|
|
+ isRowShown = true,
|
|
|
+ isSheetShown = false,
|
|
|
+ navHostController = navHostController,
|
|
|
+ topPadding = 20.dp
|
|
|
+ )
|
|
|
|
|
|
- Text(
|
|
|
- text = context.getString(R.string.trusted_network_disconnected),
|
|
|
- color = colorResource(id = R.color.gray_icon),
|
|
|
- style = MaterialTheme.typography.displaySmall,
|
|
|
- modifier = Modifier
|
|
|
- .padding(top = 15.dp, end = 27.dp)
|
|
|
- .alpha(1f)
|
|
|
- )
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .wrapContentHeight()
|
|
|
+ .fillMaxWidth()
|
|
|
+ .padding(top = 20.dp, end = 27.dp)
|
|
|
+ .border(
|
|
|
+ border = BorderStroke(1.dp, colorResource(id = R.color.graywidget)),
|
|
|
+ shape = RoundedCornerShape(14.dp)
|
|
|
+ )
|
|
|
+ .background(
|
|
|
+ shape = RoundedCornerShape(14.dp),
|
|
|
+ color = MaterialTheme.colorScheme.onBackground
|
|
|
+ )
|
|
|
+ ) {
|
|
|
+ Text(
|
|
|
+ text = context.getString(R.string.auto_connect_functionality),
|
|
|
+ color = colorResource(id = R.color.gray_icon),
|
|
|
+ style = MaterialTheme.typography.displaySmall,
|
|
|
+ modifier = Modifier
|
|
|
+ .padding(all = 10.dp)
|
|
|
+ .alpha(1f)
|
|
|
+ )
|
|
|
+ }
|
|
|
|
|
|
- Text(
|
|
|
- text = context.getString(R.string.trusted_network_reconnected),
|
|
|
- color = colorResource(id = R.color.gray_icon),
|
|
|
- style = MaterialTheme.typography.displaySmall,
|
|
|
- modifier = Modifier
|
|
|
- .padding(top = 5.dp, end = 27.dp)
|
|
|
- .alpha(1f)
|
|
|
- )
|
|
|
+ Surface(
|
|
|
+ modifier = Modifier
|
|
|
+ .padding(top = 20.dp, end = 27.dp)
|
|
|
+ .height(1.dp)
|
|
|
+ .fillMaxWidth()
|
|
|
+ .alpha(0.5F),
|
|
|
+ color = colorResource(id = R.color.gray_icon)
|
|
|
+ ) {}
|
|
|
+
|
|
|
+ Text(
|
|
|
+ text = context.getString(R.string.trusted_network),
|
|
|
+ color = MaterialTheme.colorScheme.primary,
|
|
|
+ style = MaterialTheme.typography.titleSmall,
|
|
|
+ modifier = Modifier.padding(top = 20.dp)
|
|
|
+ )
|
|
|
+
|
|
|
+ Text(
|
|
|
+ text = context.getString(R.string.trusted_network_disconnected),
|
|
|
+ color = colorResource(id = R.color.gray_icon),
|
|
|
+ style = MaterialTheme.typography.displaySmall,
|
|
|
+ modifier = Modifier
|
|
|
+ .padding(top = 15.dp, end = 27.dp)
|
|
|
+ .alpha(1f)
|
|
|
+ )
|
|
|
+
|
|
|
+ Text(
|
|
|
+ text = context.getString(R.string.trusted_network_reconnected),
|
|
|
+ color = colorResource(id = R.color.gray_icon),
|
|
|
+ style = MaterialTheme.typography.displaySmall,
|
|
|
+ modifier = Modifier
|
|
|
+ .padding(top = 5.dp, end = 27.dp)
|
|
|
+ .alpha(1f)
|
|
|
+ )
|
|
|
|
|
|
- val mobileNetworkState = basePreferenceHelper.getMobileNetworkState()
|
|
|
+ val mobileNetworkState = basePreferenceHelper.getMobileNetworkState()
|
|
|
|
|
|
- AutoConnectItem(mobileNetworkState, basePreferenceHelper)
|
|
|
+ AutoConnectItem(mobileNetworkState, basePreferenceHelper)
|
|
|
|
|
|
|
|
|
- wifiList?.let {
|
|
|
- LazyColumn() {
|
|
|
- items(items = wifiList) {
|
|
|
- AutoConnectWifiItem(it, basePreferenceHelper, connectedWifiSsid ?: "", context)
|
|
|
+ wifiList?.let {
|
|
|
+ LazyColumn {
|
|
|
+ items(items = wifiList) {
|
|
|
+ AutoConnectWifiItem(it, basePreferenceHelper, connectedWifiSsid ?: "", context)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|