diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index c59d0366..790af19c 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -18,7 +18,7 @@ android { minSdk = libs.versions.minSdk.get().toInt() targetSdk = libs.versions.targetSdk.get().toInt() versionCode = 2 - versionName = "1.1.1" + versionName = "1.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/android/app/src/main/java/network/mysterium/provider/ui/screens/settings/Settings.kt b/android/app/src/main/java/network/mysterium/provider/ui/screens/settings/Settings.kt index 34049ecc..d67b053c 100644 --- a/android/app/src/main/java/network/mysterium/provider/ui/screens/settings/Settings.kt +++ b/android/app/src/main/java/network/mysterium/provider/ui/screens/settings/Settings.kt @@ -15,9 +15,9 @@ sealed class Settings { data class UpdateLimit(val value: String) : Event() object SaveMobileDataLimit : Event() object OnContinue : Event() - object ShutDown: Event() - object ConfirmShutDown: Event() - object CancelShutDown: Event() + object ShutDown : Event() + object ConfirmShutDown : Event() + object CancelShutDown : Event() } data class State( @@ -30,7 +30,8 @@ sealed class Settings { val isStartingNode: Boolean, val showShutDownConfirmation: Boolean, val nodeError: NodeError?, - val continueButtonEnabled: Boolean + val continueButtonEnabled: Boolean, + val isLoading: Boolean = false, ) : UIState data class NodeError( @@ -38,7 +39,7 @@ sealed class Settings { ) sealed class Effect : UIEffect { - data class Navigation(val destination: NavigationDestination): Effect() - object CloseApp: Effect() + data class Navigation(val destination: NavigationDestination) : Effect() + object CloseApp : Effect() } -} \ No newline at end of file +} diff --git a/android/app/src/main/java/network/mysterium/provider/ui/screens/settings/SettingsScreen.kt b/android/app/src/main/java/network/mysterium/provider/ui/screens/settings/SettingsScreen.kt index 1b938593..b88f8264 100644 --- a/android/app/src/main/java/network/mysterium/provider/ui/screens/settings/SettingsScreen.kt +++ b/android/app/src/main/java/network/mysterium/provider/ui/screens/settings/SettingsScreen.kt @@ -17,11 +17,13 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll import androidx.compose.material3.AlertDialog +import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext @@ -82,7 +84,7 @@ fun SettingsScreen( appVersion = context.appVersion(), onEvent = { viewModel.setEvent(it) }, onNavigate = onNavigate, - onHelpPressed = { viewModel.trackHelpPressed()} + onHelpPressed = { viewModel.trackHelpPressed() } ) } @@ -147,6 +149,10 @@ private fun SettingsContent( } } } + + if (state.isLoading) { + CircularProgressIndicator(modifier = Modifier.align(Alignment.Center)) + } } if (state.showShutDownConfirmation) { diff --git a/android/app/src/main/java/network/mysterium/provider/ui/screens/settings/SettingsViewModel.kt b/android/app/src/main/java/network/mysterium/provider/ui/screens/settings/SettingsViewModel.kt index 3d7f7521..a7fb3b62 100644 --- a/android/app/src/main/java/network/mysterium/provider/ui/screens/settings/SettingsViewModel.kt +++ b/android/app/src/main/java/network/mysterium/provider/ui/screens/settings/SettingsViewModel.kt @@ -32,6 +32,7 @@ class SettingsViewModel( showShutDownConfirmation = false, continueButtonEnabled = true, nodeError = null, + isLoading = false ) } @@ -175,9 +176,12 @@ class SettingsViewModel( } private fun shutDownNode() = launch { + setState { copy(isLoading = true, showShutDownConfirmation = false) } + withContext(ioDispatcher) { node.stop() } + setState { copy(isLoading = true) } setEffect { Settings.Effect.CloseApp } } diff --git a/android/gradle/libs.versions.toml b/android/gradle/libs.versions.toml index 6cdd073c..6ddd2791 100644 --- a/android/gradle/libs.versions.toml +++ b/android/gradle/libs.versions.toml @@ -11,7 +11,7 @@ compose-bom = "2023.10.01" compose-navigation = "2.7.5" accompanist = "0.30.1" node-terms = "0.0.50" -node = "1.28.0" +node = "1.29.2-rc3" koin = "3.4.3" koin-compose = "3.4.6" markwon = "4.6.2"