Parcourir la source

Optimized logic for enable/disable items on auto-connect switch option and change color of buttons to gray if disabled

Khubaib il y a 4 mois
Parent
commit
781ffc7844

+ 2 - 2
app/src/main/java/com/vpn/fastestvpnservice/customItems/AutoConnectItem.kt

@@ -98,7 +98,7 @@ fun AutoConnectItem(
             )
         }
         val isAddedText = if (isAdded) "Remove" else "Add"
-        val isAddedColor = if (isAdded) colorResource(id = R.color.Red) else colorResource(id = R.color.LightSeaGreen)
+        val isAddedColor = if (!isSwitchMutable.value) colorResource(id = R.color.gray_icon) else if (isAdded) colorResource(id = R.color.Red) else colorResource(id = R.color.LightSeaGreen)
 
         Row(
             modifier = Modifier
@@ -213,7 +213,7 @@ fun AutoConnectWifiItem(
             )
         }
         val isAddedText = if (isAddedWifi) "Remove" else "Add"
-        val isAddedColor = if (isAddedWifi) colorResource(id = R.color.Red) else colorResource(id = R.color.LightSeaGreen)
+        val isAddedColor = if (!isSwitchMutable.value) colorResource(id = R.color.gray_icon) else if (isAddedWifi) colorResource(id = R.color.Red) else colorResource(id = R.color.LightSeaGreen)
 
 //        val isConnect by rememberSaveable { mutableIntStateOf(0) }
 //         homeViewModel.isConnect.observeAsState().value?.let {

+ 4 - 5
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/SettingsScreen.kt

@@ -12,6 +12,7 @@ import android.os.Handler
 import android.os.LocaleList
 import android.provider.Settings
 import android.util.Log
+import android.widget.Toast
 import androidx.activity.ComponentActivity
 import androidx.appcompat.app.AppCompatDelegate
 import androidx.compose.foundation.ExperimentalFoundationApi
@@ -1396,12 +1397,10 @@ fun ColumnScope.AddRowSettingsSmart(
             .background(Color.Transparent)
             .pointerInput(Unit) {
                 detectTapGestures {
-                    if (isSheetShown) {
-                        isSmartSheetOpen = true
+                    isSmartSheetOpen = if (isSheetShown) {
+                        true
                     } else {
-                        if (isSwitchMutable.value) {
-                            isSmartSheetOpen = true
-                        }
+                        isSwitchMutable.value
                     }
                 }
             }

+ 4 - 3
app/src/main/java/com/vpn/fastestvpnservice/screens/settingsScreenAll/AutoConnectScreen.kt

@@ -68,7 +68,7 @@ fun AutoConnectScreen(navHostController: NavHostController) {
     var isAdded by rememberSaveable { mutableStateOf(false) }
     var isAddedWifi by rememberSaveable { mutableStateOf(false) }
     var isSwitch by rememberSaveable { mutableStateOf(basePreferenceHelper.getAutoConnectState()) }
-    isSwitchMutable.value = isSwitch
+    isSwitchMutable.value = basePreferenceHelper.getAutoConnectState()
 
     val wifiList = settingsViewModel.liveDataConnectedWifi.observeAsState().value
     val connectedWifiSsid = settingsViewModel.liveDataConnectedSsid.observeAsState().value
@@ -126,6 +126,7 @@ fun AutoConnectScreen(navHostController: NavHostController) {
                     onCheckedChange = { state ->
                         isSwitch = state
                         basePreferenceHelper.saveAutoConnectState(isSwitch)
+                        isSwitchMutable.value = isSwitch
 
                         if (isSwitch) {
                             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
@@ -184,8 +185,8 @@ fun AutoConnectScreen(navHostController: NavHostController) {
             AddRowSettingsSmart(
                 icon = R.drawable.smart_connect3x,
                 text = selectedSmart.value,
-                isRowShown = false,
-                isSheetShown = isSwitchMutable.value,
+                isRowShown = true,
+                isSheetShown = false,
                 navHostController = navHostController,
                 topPadding = 20.dp
             )