@@ -6,10 +6,12 @@ import android.widget.Toast
6
6
import androidx.compose.foundation.background
7
7
import androidx.compose.foundation.clickable
8
8
import androidx.compose.foundation.gestures.scrollable
9
+ import androidx.compose.foundation.layout.Arrangement
9
10
import androidx.compose.foundation.layout.Column
10
11
import androidx.compose.foundation.layout.Row
11
12
import androidx.compose.foundation.layout.RowScope
12
13
import androidx.compose.foundation.layout.Spacer
14
+ import androidx.compose.foundation.layout.fillMaxSize
13
15
import androidx.compose.foundation.layout.fillMaxWidth
14
16
import androidx.compose.foundation.layout.height
15
17
import androidx.compose.foundation.layout.navigationBarsPadding
@@ -54,6 +56,7 @@ import androidx.compose.ui.unit.dp
54
56
import androidx.compose.ui.unit.max
55
57
import androidx.compose.ui.window.Dialog
56
58
import com.windscribe.mobile.ui.AppStartActivity
59
+ import com.windscribe.mobile.ui.common.NextButton
57
60
import com.windscribe.mobile.ui.common.PreferenceBackground
58
61
import com.windscribe.mobile.ui.common.PreferenceProgressBar
59
62
import com.windscribe.mobile.ui.common.openUrl
@@ -81,12 +84,21 @@ fun AccountScreen(viewModel: AccountViewModel? = null) {
81
84
val navController = LocalNavController .current
82
85
val showProgress by viewModel?.showProgress?.collectAsState()
83
86
? : remember { mutableStateOf(false ) }
87
+ val isGhostAccount by viewModel?.isGhostAccount?.collectAsState() ? : remember {
88
+ mutableStateOf(
89
+ false
90
+ )
91
+ }
84
92
val scrollState = rememberScrollState()
85
93
PreferenceBackground {
86
94
Column (modifier = Modifier .padding(vertical = 16 .dp, horizontal = 16 .dp)) {
87
95
PreferencesNavBar (stringResource(R .string.my_account)) {
88
96
navController.popBackStack()
89
97
}
98
+ if (isGhostAccount) {
99
+ GhostAccountState ()
100
+ return @Column
101
+ }
90
102
Column (Modifier
91
103
.navigationBarsPadding()
92
104
.verticalScroll(scrollState)) {
@@ -118,6 +130,35 @@ fun AccountScreen(viewModel: AccountViewModel? = null) {
118
130
}
119
131
}
120
132
133
+ @Composable
134
+ private fun GhostAccountState () {
135
+ val navController = LocalNavController .current
136
+ Column (
137
+ verticalArrangement = Arrangement .Center ,
138
+ horizontalAlignment = Alignment .CenterHorizontally ,
139
+ modifier = Modifier .fillMaxSize()
140
+ ) {
141
+ Spacer (modifier = Modifier .weight(1.0f ))
142
+ NextButton (
143
+ modifier = Modifier ,
144
+ text = stringResource(R .string.login),
145
+ enabled = true
146
+ ) {
147
+ navController.navigate(Screen .Login .route)
148
+ }
149
+ Spacer (modifier = Modifier .height(16 .dp))
150
+ NextButton (
151
+ modifier = Modifier ,
152
+ text = stringResource(R .string.account_set_up),
153
+ enabled = true
154
+ ) {
155
+ navController.currentBackStackEntry?.savedStateHandle?.set(" isAccountClaim" , true )
156
+ navController.navigate(Screen .Signup .route)
157
+ }
158
+ Spacer (modifier = Modifier .weight(1.0f ))
159
+ }
160
+ }
161
+
121
162
@Composable
122
163
private fun HandleAlertState (viewModel : AccountViewModel ? ) {
123
164
val activity = LocalContext .current as ? AppStartActivity
@@ -758,6 +799,7 @@ private fun AccountScreenPreview(accountState: AccountState) {
758
799
override val showProgress: StateFlow <Boolean > = MutableStateFlow (false )
759
800
override val accountState: StateFlow <AccountState > = MutableStateFlow (accountState)
760
801
override val alertState: StateFlow <AlertState > = MutableStateFlow (AlertState .None )
802
+ override val isGhostAccount: StateFlow <Boolean > = MutableStateFlow (false )
761
803
}
762
804
AccountScreen (viewModel)
763
805
}
0 commit comments