@@ -143,9 +143,9 @@ public void Initialize(Window window, DispatcherQueue dispatcherQueue)
143
143
144
144
var rpcModel = _rpcController . GetState ( ) ;
145
145
var credentialModel = _credentialManager . GetCachedCredentials ( ) ;
146
- MaybeSetUnavailableMessage ( rpcModel , credentialModel ) ;
147
146
var syncSessionState = _syncSessionController . GetState ( ) ;
148
147
UpdateSyncSessionState ( syncSessionState ) ;
148
+ MaybeSetUnavailableMessage ( rpcModel , credentialModel , syncSessionState ) ;
149
149
}
150
150
151
151
private void RpcControllerStateChanged ( object ? sender , RpcModel rpcModel )
@@ -159,7 +159,8 @@ private void RpcControllerStateChanged(object? sender, RpcModel rpcModel)
159
159
}
160
160
161
161
var credentialModel = _credentialManager . GetCachedCredentials ( ) ;
162
- MaybeSetUnavailableMessage ( rpcModel , credentialModel ) ;
162
+ var syncSessionState = _syncSessionController . GetState ( ) ;
163
+ MaybeSetUnavailableMessage ( rpcModel , credentialModel , syncSessionState ) ;
163
164
}
164
165
165
166
private void CredentialManagerCredentialsChanged ( object ? sender , CredentialModel credentialModel )
@@ -173,7 +174,8 @@ private void CredentialManagerCredentialsChanged(object? sender, CredentialModel
173
174
}
174
175
175
176
var rpcModel = _rpcController . GetState ( ) ;
176
- MaybeSetUnavailableMessage ( rpcModel , credentialModel ) ;
177
+ var syncSessionState = _syncSessionController . GetState ( ) ;
178
+ MaybeSetUnavailableMessage ( rpcModel , credentialModel , syncSessionState ) ;
177
179
}
178
180
179
181
private void SyncSessionStateChanged ( object ? sender , SyncSessionControllerStateModel syncSessionState )
@@ -189,7 +191,7 @@ private void SyncSessionStateChanged(object? sender, SyncSessionControllerStateM
189
191
UpdateSyncSessionState ( syncSessionState ) ;
190
192
}
191
193
192
- private void MaybeSetUnavailableMessage ( RpcModel rpcModel , CredentialModel credentialModel )
194
+ private void MaybeSetUnavailableMessage ( RpcModel rpcModel , CredentialModel credentialModel , SyncSessionControllerStateModel syncSessionState )
193
195
{
194
196
var oldMessage = UnavailableMessage ;
195
197
if ( rpcModel . RpcLifecycle != RpcLifecycle . Connected )
@@ -205,6 +207,10 @@ private void MaybeSetUnavailableMessage(RpcModel rpcModel, CredentialModel crede
205
207
{
206
208
UnavailableMessage = "Please start Coder Connect from the tray window to access file sync." ;
207
209
}
210
+ else if ( syncSessionState . Lifecycle == SyncSessionControllerLifecycle . Uninitialized )
211
+ {
212
+ UnavailableMessage = "Sync session controller is not initialized. Please wait..." ;
213
+ }
208
214
else
209
215
{
210
216
UnavailableMessage = null ;
@@ -219,6 +225,13 @@ private void MaybeSetUnavailableMessage(RpcModel rpcModel, CredentialModel crede
219
225
220
226
private void UpdateSyncSessionState ( SyncSessionControllerStateModel syncSessionState )
221
227
{
228
+ // This should never happen.
229
+ if ( syncSessionState == null )
230
+ return ;
231
+ if ( syncSessionState . Lifecycle == SyncSessionControllerLifecycle . Uninitialized )
232
+ {
233
+ MaybeSetUnavailableMessage ( _rpcController . GetState ( ) , _credentialManager . GetCachedCredentials ( ) , syncSessionState ) ;
234
+ }
222
235
Error = syncSessionState . DaemonError ;
223
236
Sessions = syncSessionState . SyncSessions . Select ( s => new SyncSessionViewModel ( this , s ) ) . ToList ( ) ;
224
237
}
0 commit comments