diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts index b1b3930..8baa133 100644 --- a/composeApp/build.gradle.kts +++ b/composeApp/build.gradle.kts @@ -89,7 +89,7 @@ android { applicationId = "com.digitoolsolutions.app.torquevaultkmp" minSdk = libs.versions.android.minSdk.get().toInt() targetSdk = libs.versions.android.targetSdk.get().toInt() - versionCode = 3 + versionCode = 4 versionName = "1.0.2" } packaging { diff --git a/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/AppViewModel.kt b/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/AppViewModel.kt index 55bcbc6..29e1b76 100644 --- a/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/AppViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/AppViewModel.kt @@ -42,8 +42,8 @@ class AppViewModel( /** * Determines if the Debug Logs tab should be visible in the navigation bar. */ - private val _showLogs = MutableStateFlow(false) - val showLogs: StateFlow = _showLogs + private val _showLogs = mutableStateOf(storage.load(ReferKeys.SHOW_LOGS) ?: false) + val showLogs: State = _showLogs init { viewModelScope.launch { @@ -77,9 +77,10 @@ class AppViewModel( } /** - * Enables or disables the visibility of diagnostic logs. + * Toggles between visible and hidden logs and persists the choice. */ - fun setShowLogs(enabled: Boolean) { - _showLogs.value = enabled + fun toggleShowLogs(isVisible: Boolean) { + _showLogs.value = isVisible + storage.save(ReferKeys.SHOW_LOGS, isVisible) } } diff --git a/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/data/storage/ReferKeys.kt b/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/data/storage/ReferKeys.kt index 3bbbb3e..2e2de98 100644 --- a/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/data/storage/ReferKeys.kt +++ b/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/data/storage/ReferKeys.kt @@ -18,4 +18,5 @@ object ReferKeys { /** User preference for automatic reconnection to bonded devices (Boolean). */ const val DEVICE_AUTO_CONNECT = "device_auto_connect" + const val SHOW_LOGS = "show_logs" } diff --git a/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/screens/MainScreen.kt b/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/screens/MainScreen.kt index 554486a..0d242e0 100644 --- a/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/screens/MainScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/screens/MainScreen.kt @@ -12,7 +12,6 @@ import androidx.compose.material3.NavigationBarItemDefaults import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Modifier @@ -53,7 +52,7 @@ fun MainScreen( isLoggedIn: Boolean, viewModel: AppViewModel = koinInject() ) { - val showLogs by viewModel.showLogs.collectAsState() + val showLogs by viewModel.showLogs val destinations = buildList { add(HomeDestination) add(ScannerDestination) diff --git a/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/screens/settings/SettingScreen.kt b/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/screens/settings/SettingScreen.kt index e4b289b..d867aec 100644 --- a/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/screens/settings/SettingScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/digitoolsolutions/app/torquevaultkmp/screens/settings/SettingScreen.kt @@ -69,13 +69,13 @@ fun SettingScreen( val serverUrl by viewModel.serverUrl.collectAsState() val token by viewModel.refreshToken.collectAsState() val autoConnect by viewModel.autoConnect.collectAsState() - val showLogs by appViewModel.showLogs.collectAsState() + val showLogs by appViewModel.showLogs SettingContent( isDarkTheme = isDarkTheme, onThemeToggle = onThemeToggle, isShowLogs = showLogs, - onToggleLogs = { appViewModel.setShowLogs(it) }, + onToggleLogs = { appViewModel.toggleShowLogs(it) }, serverUrl = serverUrl, onServerUrlChange = { viewModel.updateServerUrl(it) }, token = token,