@@ -110,14 +110,19 @@ fun HomeScreen(
110
110
fun HandleGoto (connectionViewmodel : ConnectionViewmodel , homeViewmodel : HomeViewmodel ) {
111
111
val connectionGoto by connectionViewmodel.goto.collectAsState(initial = null )
112
112
val homeGoto by homeViewmodel.goto.collectAsState(initial = null )
113
- HandleGotoAction (goto = connectionGoto)
114
- HandleGotoAction (goto = homeGoto)
113
+ HandleGotoAction (goto = connectionGoto, homeViewmodel, connectionViewmodel )
114
+ HandleGotoAction (goto = homeGoto, homeViewmodel, connectionViewmodel )
115
115
}
116
116
117
117
@Composable
118
- private fun HandleGotoAction (goto : HomeGoto ? ) {
118
+ private fun HandleGotoAction (
119
+ goto : HomeGoto ? ,
120
+ homeViewmodel : HomeViewmodel ,
121
+ connectionViewmodel : ConnectionViewmodel
122
+ ) {
119
123
val context = LocalContext .current
120
124
val navController = LocalNavController .current
125
+ var didNavigate = false
121
126
when (goto) {
122
127
HomeGoto .Banned -> {
123
128
val bannedData = AccountStatusDialogData (
@@ -131,33 +136,64 @@ private fun HandleGotoAction(goto: HomeGoto?) {
131
136
bannedLayout = true
132
137
)
133
138
navigateWithData(navController, Screen .AccountStatus .route, bannedData)
139
+ didNavigate = true
134
140
}
135
141
136
142
is HomeGoto .Expired -> {
137
143
val expireData = AccountStatusDialogData (
138
144
title = stringResource(com.windscribe.vpn.R .string.you_re_out_of_data),
139
145
icon = R .drawable.garry_nodata,
140
- description = stringResource(com.windscribe.vpn.R .string.upgrade_to_stay_protected, goto.date),
146
+ description = stringResource(
147
+ com.windscribe.vpn.R .string.upgrade_to_stay_protected,
148
+ goto.date
149
+ ),
141
150
showSkipButton = true ,
142
151
skipText = stringResource(com.windscribe.vpn.R .string.upgrade_later),
143
152
showUpgradeButton = true ,
144
153
upgradeText = stringResource(com.windscribe.vpn.R .string.upgrade),
145
154
)
146
155
navigateWithData(navController, Screen .AccountStatus .route, expireData)
156
+ didNavigate = true
147
157
}
148
158
149
159
is HomeGoto .EditCustomConfig -> {
150
160
navController.currentBackStackEntry?.savedStateHandle?.set(" config_id" , goto.id)
151
161
navController.currentBackStackEntry?.savedStateHandle?.set(" connect" , goto.connect)
152
162
navController.navigate(Screen .EditCustomConfig .route)
163
+ didNavigate = true
164
+ }
165
+
166
+ is HomeGoto .Upgrade -> {
167
+ context.startActivity(UpgradeActivity .getStartIntent(context))
168
+ didNavigate = true
169
+ }
170
+
171
+ HomeGoto .PowerWhitelist -> {
172
+ navController.navigate(Screen .PowerWhitelist .route)
173
+ didNavigate = true
174
+ }
175
+
176
+ HomeGoto .ShareAppLink -> {
177
+ navController.navigate(Screen .ShareLink .route)
178
+ didNavigate = true
179
+ }
180
+
181
+ HomeGoto .LocationMaintenance -> {
182
+ navController.navigate(Screen .LocationUnderMaintenance .route)
183
+ didNavigate = true
184
+ }
185
+
186
+ HomeGoto .MainMenu -> {
187
+ navController.navigate(Screen .MainMenu .route)
188
+ didNavigate = true
153
189
}
154
190
155
- is HomeGoto .Upgrade -> context.startActivity( UpgradeActivity .getStartIntent(context))
156
- HomeGoto . PowerWhitelist -> navController.navigate( Screen . PowerWhitelist .route)
157
- HomeGoto . ShareAppLink -> navController.navigate( Screen . ShareLink .route)
158
- HomeGoto . LocationMaintenance -> navController.navigate( Screen . LocationUnderMaintenance .route)
159
- HomeGoto . MainMenu -> navController.navigate( Screen . MainMenu .route )
160
- null -> Unit
191
+ HomeGoto .None -> {}
192
+ null -> {}
193
+ }
194
+ if (didNavigate) {
195
+ connectionViewmodel.onGoToHandled( )
196
+ homeViewmodel.onGoToHandled()
161
197
}
162
198
}
163
199
@@ -348,7 +384,13 @@ internal fun BoxScope.NetworkInfoSheet(
348
384
val showContextMenu by connectionViewmodel.ipContextMenuState.collectAsState()
349
385
val isHapticEnabled by homeViewmodel.hapticFeedbackEnabled.collectAsState()
350
386
val hideIp = remember { mutableStateOf(false ) }
351
- Row (verticalAlignment = Alignment .CenterVertically , modifier = Modifier .align(Alignment .BottomCenter ).offset(y = (- 66 ).dp).padding(end = 12 .dp)) {
387
+ Row (
388
+ verticalAlignment = Alignment .CenterVertically ,
389
+ modifier = Modifier
390
+ .align(Alignment .BottomCenter )
391
+ .offset(y = (- 66 ).dp)
392
+ .padding(end = 12 .dp)
393
+ ) {
352
394
NetworkNameSheet (connectionViewmodel, homeViewmodel)
353
395
Row (
354
396
modifier = Modifier
0 commit comments