Browse Source

dark/light mode settings saved..

Khubaib 1 year ago
parent
commit
d882bdf7be

+ 4 - 2
app/src/main/java/com/vpn/fastestvpnservice/MainActivity.kt

@@ -53,11 +53,13 @@ class MainActivity : ComponentActivity() {
 
             val isSystemInDarkTheme = isSystemInDarkTheme()
             val systemTheme by remember { mutableStateOf(isSystemInDarkTheme) }
-            if (selectedtheme.value == themesList[0])
+            if (selectedTheme == themesList[0])
             {
-                Log.d("test_theme", "System 0 -> ${selectedTheme}")
                 isDarkTheme.value = systemTheme
             }
+            else {
+                isDarkTheme.value = selectedTheme == themesList[2]
+            }
 
             FastestVPNTheme(isDarkTheme.value) {
                 window.statusBarColor = colorResource(id = R.color.blue_text).toArgb()

+ 5 - 1
app/src/main/java/com/vpn/fastestvpnservice/helpers/BasePreferenceHelper.kt

@@ -358,7 +358,11 @@ class BasePreferenceHelper(private val context: Context) : PreferencesHelper() {
     }
 
     fun getTheme(): String {
-        return getStringPreference(context, KEY_FILENAME, THEME)
+        return try {
+            getStringPreference(context, KEY_FILENAME, THEME)
+        } catch (ex: Exception) {
+            themesList[0]
+        }
     }
 
 

+ 0 - 1
app/src/main/java/com/vpn/fastestvpnservice/screens/LoginScreen.kt

@@ -540,7 +540,6 @@ fun BoxScope.SignInButton(
                     prefHelper.saveAvailableProtocols(it.available_protocols)
                     prefHelper.saveXPlatformToken(it.userinfo?.email + "_" + System.currentTimeMillis())
                     prefHelper.saveAdBlockState(false)
-                    prefHelper.saveTheme(themesList[0])
 
                     it.servers?.let {
                         prefHelper.saveServerData(it)

+ 17 - 20
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/SettingsScreen.kt

@@ -92,7 +92,6 @@ import androidx.navigation.NavHostController
 import androidx.navigation.compose.rememberNavController
 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
@@ -522,9 +521,7 @@ fun AddRowDarkLightTheme(
     val sheetState = rememberModalBottomSheetState()
     val context = LocalContext.current
     val basePreferenceHelper = BasePreferenceHelper(context)
-//    var selectedtheme by remember {
-//        mutableStateOf(themesList[0]) }
-
+    var selectedtheme = remember { mutableStateOf(basePreferenceHelper.getTheme()) }
     val isSystemInDarkTheme = isSystemInDarkTheme()
     val systemTheme by remember { mutableStateOf(isSystemInDarkTheme) }
 
@@ -633,22 +630,21 @@ fun AddRowDarkLightTheme(
                                 .fillMaxWidth()
                                 .background(Color.Transparent)
                                 .padding(start = 2.dp)
-                                    .selectable(
-                                        selected = theme == selectedtheme.value,
-                                        onClick = {
-                                             selectedtheme.value = theme
-
-                                            if (selectedtheme.value == themesList[0])
-                                            {
-                                                Log.d("test_theme", "true: -> $systemTheme")
-                                                isDarkTheme.value = systemTheme
-                                            }
-                                            else {
-                                                Log.d("test_theme", "false: -> $systemTheme")
-                                                isDarkTheme.value = selectedtheme.value == themesList[2]
-                                            }
-                                        },
-                                    )
+                                .selectable(
+                                    selected = theme == selectedtheme.value,
+                                    onClick = {
+                                        selectedtheme.value = theme
+                                        basePreferenceHelper.saveTheme(selectedtheme.value)
+
+                                        if (selectedtheme.value == themesList[0]) {
+                                            Log.d("test_theme", "true: -> $systemTheme")
+                                            isDarkTheme.value = systemTheme
+                                        } else {
+                                            Log.d("test_theme", "false: -> $systemTheme")
+                                            isDarkTheme.value = selectedtheme.value == themesList[2]
+                                        }
+                                    },
+                                )
 //                                    .indication(
 //                                        indication = null,
 //                                        interactionSource = remember {
@@ -663,6 +659,7 @@ fun AddRowDarkLightTheme(
                             RadioButton(selected = theme == selectedtheme.value,
                                 onClick = {
                                     selectedtheme.value = theme
+                                    basePreferenceHelper.saveTheme(selectedtheme.value)
 
                                     if (selectedtheme.value == themesList[0])
                                     {