@@ -7,8 +7,8 @@ import com.coder.toolbox.services.CoderSecretsService
77import com.coder.toolbox.services.CoderSettingsService
88import com.coder.toolbox.settings.CoderSettings
99import com.coder.toolbox.settings.Source
10+ import com.coder.toolbox.util.CoderProtocolHandler
1011import com.coder.toolbox.util.DialogUi
11- import com.coder.toolbox.util.LinkHandler
1212import com.coder.toolbox.util.toQueryParameters
1313import com.coder.toolbox.views.Action
1414import com.coder.toolbox.views.CoderSettingsPage
@@ -47,13 +47,15 @@ class CoderRemoteProvider(
4747 private var pollJob: Job ? = null
4848 private var lastEnvironments: Set <CoderRemoteEnvironment >? = null
4949
50+ private val isInitialized: MutableStateFlow <Boolean > = MutableStateFlow (false )
51+
5052 // Create our services from the Toolbox ones.
5153 private val settingsService = CoderSettingsService (context.settingsStore)
5254 private val settings: CoderSettings = CoderSettings (settingsService, context.logger)
5355 private val secrets: CoderSecretsService = CoderSecretsService (context.secretsStore)
5456 private val settingsPage: CoderSettingsPage = CoderSettingsPage (context, settingsService)
5557 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 )
5759
5860 // The REST client, if we are signed in
5961 private var client: CoderRestClient ? = null
@@ -65,7 +67,6 @@ class CoderRemoteProvider(
6567
6668 // On the first load, automatically log in if we can.
6769 private var firstRun = true
68-
6970 override val environments: MutableStateFlow <LoadableState <List <RemoteProviderEnvironment >>> = MutableStateFlow (
7071 LoadableState .Value (emptyList())
7172 )
@@ -234,11 +235,7 @@ class CoderRemoteProvider(
234235 */
235236 override suspend fun handleUri (uri : URI ) {
236237 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)
242239 }
243240
244241 /* *
@@ -323,6 +320,7 @@ class CoderRemoteProvider(
323320 pollJob?.cancel()
324321 pollJob = poll(client, cli)
325322 goToEnvironmentsPage()
323+ isInitialized.update { true }
326324 }
327325
328326 /* *
0 commit comments