diff --git a/app/src/main/java/com/zaneschepke/wireguardautotunnel/MainActivity.kt b/app/src/main/java/com/zaneschepke/wireguardautotunnel/MainActivity.kt index adcbc8d4..85e780f0 100644 --- a/app/src/main/java/com/zaneschepke/wireguardautotunnel/MainActivity.kt +++ b/app/src/main/java/com/zaneschepke/wireguardautotunnel/MainActivity.kt @@ -204,7 +204,7 @@ class MainActivity : AppCompatActivity() { SnackbarInfo( message = buildAnnotatedString { - sideEffect.message.asString(context) + append(sideEffect.message.asString(context)) }, type = sideEffect.type ?: SnackbarType.INFO, durationMs = sideEffect.durationMs ?: 4000L, diff --git a/app/src/main/java/com/zaneschepke/wireguardautotunnel/viewmodel/ConfigViewModel.kt b/app/src/main/java/com/zaneschepke/wireguardautotunnel/viewmodel/ConfigViewModel.kt index 229cb0ba..62906394 100644 --- a/app/src/main/java/com/zaneschepke/wireguardautotunnel/viewmodel/ConfigViewModel.kt +++ b/app/src/main/java/com/zaneschepke/wireguardautotunnel/viewmodel/ConfigViewModel.kt @@ -74,14 +74,14 @@ constructor( if (tunnelConfig != null) { tunnelRepository.save(tunnelConfig) + if (state.isRunning) tunnelManager.restartActiveTunnel(tunnelConfig.id) + postSideEffect( GlobalSideEffect.Toast( StringValue.StringResource(R.string.config_changes_saved) ) ) postSideEffect(GlobalSideEffect.PopBackStack) - - if (state.isRunning) tunnelManager.restartActiveTunnel(tunnelConfig.id) } } .onFailure { diff --git a/app/src/main/java/com/zaneschepke/wireguardautotunnel/viewmodel/LockdownViewModel.kt b/app/src/main/java/com/zaneschepke/wireguardautotunnel/viewmodel/LockdownViewModel.kt index 696d1e00..3d7732f9 100644 --- a/app/src/main/java/com/zaneschepke/wireguardautotunnel/viewmodel/LockdownViewModel.kt +++ b/app/src/main/java/com/zaneschepke/wireguardautotunnel/viewmodel/LockdownViewModel.kt @@ -39,11 +39,6 @@ constructor( reduce { state.copy(showSaveModal = false) } lockdownSettingsRepository.upsert(lockdownSettings) - postSideEffect(GlobalSideEffect.PopBackStack) - postSideEffect( - GlobalSideEffect.Toast(StringValue.StringResource(R.string.config_changes_saved)) - ) - tunnelManager.setBackendMode(BackendMode.Inactive) val allowedIps = if (lockdownSettings.bypassLan) TunnelConfig.LAN_BYPASS_ALLOWED_IPS else emptySet() @@ -54,6 +49,11 @@ constructor( dualStack = lockdownSettings.dualStack, ) ) + + postSideEffect(GlobalSideEffect.PopBackStack) + postSideEffect( + GlobalSideEffect.Toast(StringValue.StringResource(R.string.config_changes_saved)) + ) } suspend fun postSideEffect(globalSideEffect: GlobalSideEffect) { diff --git a/app/src/main/java/com/zaneschepke/wireguardautotunnel/viewmodel/ProxySettingsViewModel.kt b/app/src/main/java/com/zaneschepke/wireguardautotunnel/viewmodel/ProxySettingsViewModel.kt index 2bda2c0d..88628cb5 100644 --- a/app/src/main/java/com/zaneschepke/wireguardautotunnel/viewmodel/ProxySettingsViewModel.kt +++ b/app/src/main/java/com/zaneschepke/wireguardautotunnel/viewmodel/ProxySettingsViewModel.kt @@ -111,12 +111,12 @@ constructor( proxySettingsRepository.upsert(updated) + if (state.activeTuns.isNotEmpty()) tunnelManager.restartActiveTunnels() + postSideEffect( GlobalSideEffect.Snackbar(StringValue.StringResource(R.string.config_changes_saved)) ) postSideEffect(GlobalSideEffect.PopBackStack) - - if (state.activeTuns.isNotEmpty()) tunnelManager.restartActiveTunnels() } fun clearHttpBindError() = intent { reduce { state.copy(isHttpBindAddressError = false) } }