Browse Source

split tunnel app selected...

Khubaib 1 year ago
parent
commit
9ae808d85f

+ 2 - 2
app/src/main/java/com/vpn/fastestvpnservice/beans/SelectApplicationEntry.kt

@@ -14,12 +14,12 @@ class SelectApplicationEntry : Comparable<SelectApplicationEntry> {
     private var mName: String? = null
     var mSelected: MutableState<Boolean> = mutableStateOf(false)
 
-    constructor(packageManager: PackageManager?, info: ApplicationInfo) {
+    constructor(packageManager: PackageManager?, info: ApplicationInfo, state: Boolean) {
         mInfo = info
         val name = info.loadLabel(packageManager!!)
         mName = name.toString()
         mIcon = info.loadIcon(packageManager)
-        mSelected.value = false
+        mSelected.value = state
     }
 
     fun setSelected(selected: MutableState<Boolean>) {

+ 8 - 10
app/src/main/java/com/vpn/fastestvpnservice/customItems/SplitTunnelingItem.kt

@@ -54,6 +54,8 @@ import com.google.accompanist.drawablepainter.rememberDrawablePainter
 
 @Composable
 fun SplitTunnelingItem(app: SelectApplicationEntry) {
+    var isSelected by rememberSaveable { mutableStateOf(false) }
+
     Surface(
         modifier = Modifier
             .fillMaxWidth()
@@ -61,7 +63,7 @@ fun SplitTunnelingItem(app: SelectApplicationEntry) {
                 color = MaterialTheme.colorScheme.background
             )
             .padding(bottom = 1.dp),
-        color = if (app.mSelected.value) colorResource(id = R.color.split_background)
+        color = if (isSelected) colorResource(id = R.color.split_background)
                 else MaterialTheme.colorScheme.background
 
     ) {
@@ -79,10 +81,7 @@ fun SplitTunnelingItem(app: SelectApplicationEntry) {
                         MutableInteractionSource()
                     },
                 ) {
-                    app.mSelected = mutableStateOf(!app.mSelected.value)
-                    Toast.makeText(
-                        context, "${app.toString()} ${app.mSelected.value}", Toast.LENGTH_SHORT
-                    ).show()
+                    isSelected = !isSelected
                 }
         ) {
             Image(
@@ -96,7 +95,7 @@ fun SplitTunnelingItem(app: SelectApplicationEntry) {
             Text(text = app.toString(),
                 style = TextStyle(
                     fontSize = 14.sp,
-                    color = if (app.mSelected.value) colorResource(id = R.color.dark_blue_gray_text)
+                    color = if (isSelected) colorResource(id = R.color.dark_blue_gray_text)
                             else MaterialTheme.colorScheme.primary
                 ),
                 modifier = Modifier
@@ -105,12 +104,11 @@ fun SplitTunnelingItem(app: SelectApplicationEntry) {
             )
             Spacer(modifier = Modifier.weight(1F))
 
-            var isSelected by rememberSaveable { mutableStateOf(false) }
 
             Checkbox(
-                checked = app.mSelected.value,
+                checked = isSelected,
                 onCheckedChange = {
-                    app.mSelected = mutableStateOf(it)
+                    isSelected = it
                 },
                 colors = CheckboxDefaults.colors(
                     uncheckedColor = colorResource(id = R.color.switch_gray),
@@ -121,7 +119,7 @@ fun SplitTunnelingItem(app: SelectApplicationEntry) {
                     .padding(bottom = 18.dp, end = 8.dp)
                     .align(Alignment.CenterVertically)
                     .background(
-                        color = if (app.mSelected.value) colorResource(id = R.color.blue_text)
+                        color = if (isSelected) colorResource(id = R.color.blue_text)
                         else colorResource(id = R.color.switch_gray),
                         shape = RoundedCornerShape(5.dp)
                     )

+ 3 - 1
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/SettingsScreen.kt

@@ -94,6 +94,7 @@ import com.vpn.fastestvpnservice.R
 import com.vpn.fastestvpnservice.beans.isDarkTheme
 import com.vpn.fastestvpnservice.beans.selectedtheme
 import com.vpn.fastestvpnservice.beans.themesList
+import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
 import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
 import com.vpn.fastestvpnservice.sealedClass.Screen
 import kotlinx.coroutines.launch
@@ -519,7 +520,8 @@ fun AddRowDarkLightTheme(
 ) {
     var isThemeSheetOpen by remember { mutableStateOf(false) }
     val sheetState = rememberModalBottomSheetState()
-
+    val context = LocalContext.current
+    val basePreferenceHelper = BasePreferenceHelper(context)
 //    var selectedtheme by remember {
 //        mutableStateOf(themesList[0]) }
 

+ 9 - 8
app/src/main/java/com/vpn/fastestvpnservice/screens/settingsScreenAll/SplitTunneling.kt

@@ -21,6 +21,7 @@ import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.lazy.LazyColumn
 import androidx.compose.foundation.lazy.items
+import androidx.compose.foundation.selection.selectable
 import androidx.compose.material.Icon
 import androidx.compose.material.IconButton
 import androidx.compose.material.Surface
@@ -141,12 +142,12 @@ fun ColumnScope.ShowRadioButtons() {
                     .fillMaxWidth()
                     .background(Color.Transparent)
                     .padding(top = 0.dp)
-//                                    .selectable(
-//                                        selected = selectedProtocol == protocol,
-//                                        onClick = {
-//                                            selectedProtocol = protocol
-//                                        },
-//                                    )
+                                    .selectable(
+                                        selected = selectedList == list,
+                                        onClick = {
+                                            selectedList = list
+                                        },
+                                    )
 //                                    .indication(
 //                                        indication = null,
 //                                        interactionSource = remember {
@@ -205,7 +206,7 @@ fun ColumnScope.ShowRadioButtons() {
                 ) == PackageManager.PERMISSION_GRANTED
             ) {
                 if (info.packageName == context.packageName) continue
-                val entry = SelectApplicationEntry(mPackageManager, info)
+                val entry = SelectApplicationEntry(mPackageManager, info, false)
 
                 Log.d("entry split", entry.toString())
 
@@ -222,7 +223,7 @@ fun ColumnScope.ShowRadioButtons() {
                 ) == PackageManager.PERMISSION_GRANTED
             ) {
                 if (info.packageName == context.packageName) continue
-                val entry = SelectApplicationEntry(mPackageManager, info)
+                val entry = SelectApplicationEntry(mPackageManager, info, false)
 
                 apps.add(entry)
                 apps2.add(entry)