@@ -7,8 +7,8 @@ import com.coder.toolbox.services.CoderSecretsService
7
7
import com.coder.toolbox.services.CoderSettingsService
8
8
import com.coder.toolbox.settings.CoderSettings
9
9
import com.coder.toolbox.settings.Source
10
+ import com.coder.toolbox.util.CoderProtocolHandler
10
11
import com.coder.toolbox.util.DialogUi
11
- import com.coder.toolbox.util.LinkHandler
12
12
import com.coder.toolbox.util.toQueryParameters
13
13
import com.coder.toolbox.views.Action
14
14
import com.coder.toolbox.views.CoderSettingsPage
@@ -47,13 +47,15 @@ class CoderRemoteProvider(
47
47
private var pollJob: Job ? = null
48
48
private var lastEnvironments: Set <CoderRemoteEnvironment >? = null
49
49
50
+ private val isInitialized: MutableStateFlow <Boolean > = MutableStateFlow (false )
51
+
50
52
// Create our services from the Toolbox ones.
51
53
private val settingsService = CoderSettingsService (context.settingsStore)
52
54
private val settings: CoderSettings = CoderSettings (settingsService, context.logger)
53
55
private val secrets: CoderSecretsService = CoderSecretsService (context.secretsStore)
54
56
private val settingsPage: CoderSettingsPage = CoderSettingsPage (context, settingsService)
55
57
private val dialogUi = DialogUi (context, settings)
56
- private val linkHandler = LinkHandler (context, settings, httpClient, dialogUi)
58
+ private val linkHandler = CoderProtocolHandler (context, settings, httpClient, dialogUi, isInitialized )
57
59
58
60
// The REST client, if we are signed in
59
61
private var client: CoderRestClient ? = null
@@ -65,7 +67,6 @@ class CoderRemoteProvider(
65
67
66
68
// On the first load, automatically log in if we can.
67
69
private var firstRun = true
68
-
69
70
override val environments: MutableStateFlow <LoadableState <List <RemoteProviderEnvironment >>> = MutableStateFlow (
70
71
LoadableState .Value (emptyList())
71
72
)
@@ -234,11 +235,7 @@ class CoderRemoteProvider(
234
235
*/
235
236
override suspend fun handleUri (uri : URI ) {
236
237
val params = uri.toQueryParameters()
237
- context.cs.launch {
238
- val name = linkHandler.handle(params)
239
- // TODO@JB: Now what? How do we actually connect this workspace?
240
- context.logger.debug(" External request for $name : $uri " )
241
- }
238
+ linkHandler.handle(params)
242
239
}
243
240
244
241
/* *
@@ -323,6 +320,7 @@ class CoderRemoteProvider(
323
320
pollJob?.cancel()
324
321
pollJob = poll(client, cli)
325
322
goToEnvironmentsPage()
323
+ isInitialized.update { true }
326
324
}
327
325
328
326
/* *
0 commit comments