|
@@ -2,6 +2,7 @@ package com.vpn.fastestvpnservice.screens.bottomNavBarScreens
|
|
|
|
|
|
import android.app.Activity
|
|
|
import android.app.LocaleManager
|
|
|
+import android.app.PendingIntent
|
|
|
import android.content.Context
|
|
|
import android.content.Intent
|
|
|
import android.os.Build
|
|
@@ -9,7 +10,6 @@ import android.os.Bundle
|
|
|
import android.os.Handler
|
|
|
import android.os.LocaleList
|
|
|
import android.util.Log
|
|
|
-import android.widget.Toast
|
|
|
import androidx.compose.foundation.ExperimentalFoundationApi
|
|
|
import androidx.compose.foundation.Image
|
|
|
import androidx.compose.foundation.LocalOverscrollConfiguration
|
|
@@ -22,7 +22,6 @@ import androidx.compose.foundation.layout.Column
|
|
|
import androidx.compose.foundation.layout.ColumnScope
|
|
|
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
|
|
|
import androidx.compose.foundation.layout.height
|
|
@@ -53,7 +52,6 @@ import androidx.compose.material3.rememberModalBottomSheetState
|
|
|
import androidx.compose.runtime.Composable
|
|
|
import androidx.compose.runtime.CompositionLocalProvider
|
|
|
import androidx.compose.runtime.LaunchedEffect
|
|
|
-import androidx.compose.runtime.collectAsState
|
|
|
import androidx.compose.runtime.getValue
|
|
|
import androidx.compose.runtime.livedata.observeAsState
|
|
|
import androidx.compose.runtime.mutableStateOf
|
|
@@ -99,9 +97,7 @@ import com.vpn.fastestvpnservice.screens.serverListViewModelSplash
|
|
|
import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
|
|
|
import com.vpn.fastestvpnservice.sealedClass.Screen
|
|
|
import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
|
|
|
-import com.vpn.fastestvpnservice.viewmodels.SearchListViewModel
|
|
|
import com.vpn.fastestvpnservice.viewmodels.ServerListViewModel
|
|
|
-import com.vpn.fastestvpnservice.viewmodels.SplashViewModel
|
|
|
import de.blinkt.openvpn.core.App
|
|
|
import kotlinx.coroutines.delay
|
|
|
import kotlinx.coroutines.launch
|
|
@@ -114,10 +110,11 @@ fun Settings(navHostController: NavHostController) {
|
|
|
CompositionLocalProvider(
|
|
|
LocalOverscrollConfiguration provides null
|
|
|
) {
|
|
|
- Box(modifier = Modifier
|
|
|
- .background(MaterialTheme.colorScheme.background)
|
|
|
- .fillMaxSize()
|
|
|
- .padding(vertical = 10.dp),
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .background(MaterialTheme.colorScheme.background)
|
|
|
+ .fillMaxSize()
|
|
|
+ .padding(vertical = 10.dp),
|
|
|
) {
|
|
|
val view = LocalView.current
|
|
|
val window = (view.context as Activity).window
|
|
@@ -289,7 +286,8 @@ fun ColumnScope.AddRowSwitch(icon: Int, text: String) {
|
|
|
Handler().postDelayed(Runnable {
|
|
|
vpnConnectionsUtil.startVpn()
|
|
|
}, 500)
|
|
|
- } },
|
|
|
+ }
|
|
|
+ },
|
|
|
modifier = Modifier.scale(0.8F),
|
|
|
colors = SwitchDefaults.colors(
|
|
|
checkedThumbColor = Color.White,
|
|
@@ -448,7 +446,8 @@ fun ColumnScope.AddRowSettingsColumn(
|
|
|
.weight(1f)
|
|
|
)
|
|
|
Spacer(modifier = Modifier.height(2.dp))
|
|
|
- Text(text = selectedProtocol,
|
|
|
+ Text(
|
|
|
+ text = selectedProtocol,
|
|
|
style = MaterialTheme.typography.headlineSmall.copy(
|
|
|
fontSize = if (isTablet) 14.sp else 12.sp
|
|
|
),
|
|
@@ -489,12 +488,13 @@ fun ColumnScope.AddRowSettingsColumn(
|
|
|
sheetState = sheetState,
|
|
|
containerColor = MaterialTheme.colorScheme.onBackground
|
|
|
) {
|
|
|
- Box(modifier = Modifier
|
|
|
- .background(Color.Transparent)
|
|
|
- .fillMaxWidth()
|
|
|
- .height(340.dp)
|
|
|
- .padding(start = 0.dp, top = 5.dp),
|
|
|
- ) {
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .background(Color.Transparent)
|
|
|
+ .fillMaxWidth()
|
|
|
+ .height(340.dp)
|
|
|
+ .padding(start = 0.dp, top = 5.dp),
|
|
|
+ ) {
|
|
|
Column(
|
|
|
verticalArrangement = Arrangement.Top,
|
|
|
horizontalAlignment = Alignment.Start
|
|
@@ -542,7 +542,8 @@ fun ColumnScope.AddRowSettingsColumn(
|
|
|
},
|
|
|
colors = RadioButtonDefaults.colors(
|
|
|
selectedColor = colorResource(id = R.color.radio_button_blue),
|
|
|
- unselectedColor = colorResource(id = R.color.gray_icon),)
|
|
|
+ unselectedColor = colorResource(id = R.color.gray_icon),
|
|
|
+ )
|
|
|
)
|
|
|
Text(text = protocol,
|
|
|
modifier = Modifier.padding(start = 12.dp),
|
|
@@ -692,11 +693,12 @@ fun AddRowDarkLightTheme(
|
|
|
sheetState = sheetState,
|
|
|
containerColor = MaterialTheme.colorScheme.onBackground
|
|
|
) {
|
|
|
- Box(modifier = Modifier
|
|
|
- .background(Color.Transparent)
|
|
|
- .fillMaxWidth()
|
|
|
- .height(250.dp)
|
|
|
- .padding(start = 0.dp, top = 10.dp),
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .background(Color.Transparent)
|
|
|
+ .fillMaxWidth()
|
|
|
+ .height(250.dp)
|
|
|
+ .padding(start = 0.dp, top = 10.dp),
|
|
|
) {
|
|
|
|
|
|
Log.d("test_theme", "systemTheme -> $systemTheme")
|
|
@@ -765,7 +767,8 @@ fun AddRowDarkLightTheme(
|
|
|
},
|
|
|
colors = RadioButtonDefaults.colors(
|
|
|
selectedColor = colorResource(id = R.color.radio_button_blue),
|
|
|
- unselectedColor = colorResource(id = R.color.gray_icon),)
|
|
|
+ unselectedColor = colorResource(id = R.color.gray_icon),
|
|
|
+ )
|
|
|
)
|
|
|
Text(text = theme,
|
|
|
modifier = Modifier.padding(start = 12.dp),
|
|
@@ -866,11 +869,12 @@ fun SelectLanguage(
|
|
|
sheetState = sheetState,
|
|
|
containerColor = MaterialTheme.colorScheme.onBackground
|
|
|
) {
|
|
|
- Box(modifier = Modifier
|
|
|
- .background(Color.Transparent)
|
|
|
- .fillMaxWidth()
|
|
|
- .height(300.dp)
|
|
|
- .padding(start = 0.dp, top = 10.dp),
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .background(Color.Transparent)
|
|
|
+ .fillMaxWidth()
|
|
|
+ .height(300.dp)
|
|
|
+ .padding(start = 0.dp, top = 10.dp),
|
|
|
) {
|
|
|
Column(
|
|
|
verticalArrangement = Arrangement.Top,
|
|
@@ -894,22 +898,29 @@ fun SelectLanguage(
|
|
|
.selectable(
|
|
|
selected = language == languages[0],
|
|
|
onClick = {
|
|
|
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
|
- when (language.name) {
|
|
|
- languages[0].name -> {
|
|
|
- context.getSystemService(LocaleManager::class.java).applicationLocales = LocaleList.forLanguageTags(language.code)
|
|
|
- }
|
|
|
- languages[1].name -> {
|
|
|
- context.getSystemService(LocaleManager::class.java).applicationLocales = LocaleList.forLanguageTags(language.code)
|
|
|
- }
|
|
|
- languages[2].name -> {
|
|
|
- context.getSystemService(LocaleManager::class.java).applicationLocales = LocaleList.forLanguageTags(language.code)
|
|
|
- }
|
|
|
- languages[3].name -> {
|
|
|
- context.getSystemService(LocaleManager::class.java).applicationLocales = LocaleList.forLanguageTags(language.code)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
|
+ when (language.name) {
|
|
|
+ languages[0].name -> {
|
|
|
+ context.getSystemService(LocaleManager::class.java).applicationLocales =
|
|
|
+ LocaleList.forLanguageTags(language.code)
|
|
|
+ }
|
|
|
+
|
|
|
+ languages[1].name -> {
|
|
|
+ context.getSystemService(LocaleManager::class.java).applicationLocales =
|
|
|
+ LocaleList.forLanguageTags(language.code)
|
|
|
+ }
|
|
|
+
|
|
|
+ languages[2].name -> {
|
|
|
+ context.getSystemService(LocaleManager::class.java).applicationLocales =
|
|
|
+ LocaleList.forLanguageTags(language.code)
|
|
|
+ }
|
|
|
+
|
|
|
+ languages[3].name -> {
|
|
|
+ context.getSystemService(LocaleManager::class.java).applicationLocales =
|
|
|
+ LocaleList.forLanguageTags(language.code)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
isLanguageSheetOpen = false
|
|
|
},
|
|
|
)
|
|
@@ -942,7 +953,8 @@ fun SelectLanguage(
|
|
|
},
|
|
|
colors = RadioButtonDefaults.colors(
|
|
|
selectedColor = colorResource(id = R.color.radio_button_blue),
|
|
|
- unselectedColor = colorResource(id = R.color.gray_icon),)
|
|
|
+ unselectedColor = colorResource(id = R.color.gray_icon),
|
|
|
+ )
|
|
|
)
|
|
|
Text(text = language.name,
|
|
|
modifier = Modifier.padding(start = 12.dp),
|
|
@@ -1050,11 +1062,12 @@ fun ColumnScope.AddRowSettingsSmart(
|
|
|
sheetState = sheetState,
|
|
|
containerColor = MaterialTheme.colorScheme.onBackground
|
|
|
) {
|
|
|
- Box(modifier = Modifier
|
|
|
- .background(Color.Transparent)
|
|
|
- .fillMaxWidth()
|
|
|
- .height(250.dp)
|
|
|
- .padding(start = 0.dp, top = 10.dp),
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .background(Color.Transparent)
|
|
|
+ .fillMaxWidth()
|
|
|
+ .height(250.dp)
|
|
|
+ .padding(start = 0.dp, top = 10.dp),
|
|
|
) {
|
|
|
val selectedSmartList = basePreferenceHelper.getSmartList()
|
|
|
val smartServer = basePreferenceHelper.getSmartServerObject() ?: basePreferenceHelper.getRecommendedServerObject()
|
|
@@ -1112,7 +1125,8 @@ fun ColumnScope.AddRowSettingsSmart(
|
|
|
},
|
|
|
colors = RadioButtonDefaults.colors(
|
|
|
selectedColor = colorResource(id = R.color.radio_button_blue),
|
|
|
- unselectedColor = colorResource(id = R.color.gray_icon),)
|
|
|
+ unselectedColor = colorResource(id = R.color.gray_icon),
|
|
|
+ )
|
|
|
)
|
|
|
Column {
|
|
|
Text(text = smart,
|
|
@@ -1161,12 +1175,13 @@ fun ColumnScope.AddRowSettingsSmart(
|
|
|
.padding(top = 15.dp)
|
|
|
.fillMaxSize()
|
|
|
) {
|
|
|
- Box(modifier = Modifier
|
|
|
- .background(Color.Transparent)
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .background(Color.Transparent)
|
|
|
// .fillMaxWidth()
|
|
|
// .fillMaxHeight()
|
|
|
- .padding(start = 0.dp, top = 10.dp)
|
|
|
- .fillMaxSize(),
|
|
|
+ .padding(start = 0.dp, top = 10.dp)
|
|
|
+ .fillMaxSize(),
|
|
|
) {
|
|
|
Column(
|
|
|
verticalArrangement = Arrangement.Top,
|