4
4
*--------------------------------------------------------------------------------------------*/
5
5
6
6
import { status } from 'vs/base/browser/ui/aria/aria' ;
7
- import { RunOnceScheduler } from 'vs/base/common/async' ;
8
- import { Disposable , DisposableMap , IDisposable } from 'vs/base/common/lifecycle' ;
7
+ import { Disposable , DisposableMap } from 'vs/base/common/lifecycle' ;
9
8
import { AccessibilitySignal , IAccessibilitySignalService } from 'vs/platform/accessibilitySignal/browser/accessibilitySignalService' ;
10
9
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation' ;
10
+ import { AccessibilityProgressSignalScheduler } from 'vs/platform/accessibilitySignal/browser/progressAccessibilitySignalScheduler' ;
11
11
import { IChatAccessibilityService } from 'vs/workbench/contrib/chat/browser/chat' ;
12
12
import { IChatResponseViewModel } from 'vs/workbench/contrib/chat/common/chatViewModel' ;
13
13
14
+ const CHAT_RESPONSE_PENDING_AUDIO_CUE_LOOP_MS = 5000 ;
15
+ const CHAT_RESPONSE_PENDING_ALLOWANCE_MS = 4000 ;
14
16
export class ChatAccessibilityService extends Disposable implements IChatAccessibilityService {
15
17
16
18
declare readonly _serviceBrand : undefined ;
17
19
18
- private _pendingSignalMap : DisposableMap < number , AccessibilitySignalScheduler > = this . _register ( new DisposableMap ( ) ) ;
20
+ private _pendingSignalMap : DisposableMap < number , AccessibilityProgressSignalScheduler > = this . _register ( new DisposableMap ( ) ) ;
19
21
20
22
private _requestId : number = 0 ;
21
23
@@ -25,7 +27,7 @@ export class ChatAccessibilityService extends Disposable implements IChatAccessi
25
27
acceptRequest ( ) : number {
26
28
this . _requestId ++ ;
27
29
this . _accessibilitySignalService . playSignal ( AccessibilitySignal . chatRequestSent , { allowManyInParallel : true } ) ;
28
- this . _pendingSignalMap . set ( this . _requestId , this . _instantiationService . createInstance ( AccessibilitySignalScheduler ) ) ;
30
+ this . _pendingSignalMap . set ( this . _requestId , this . _instantiationService . createInstance ( AccessibilityProgressSignalScheduler , CHAT_RESPONSE_PENDING_AUDIO_CUE_LOOP_MS , CHAT_RESPONSE_PENDING_ALLOWANCE_MS ) ) ;
29
31
return this . _requestId ;
30
32
}
31
33
acceptResponse ( response : IChatResponseViewModel | string | undefined , requestId : number ) : void {
@@ -41,25 +43,3 @@ export class ChatAccessibilityService extends Disposable implements IChatAccessi
41
43
}
42
44
}
43
45
44
- const CHAT_RESPONSE_PENDING_AUDIO_CUE_LOOP_MS = 5000 ;
45
- const CHAT_RESPONSE_PENDING_ALLOWANCE_MS = 4000 ;
46
- /**
47
- * Schedules an audio cue to play when a chat response is pending for too long.
48
- */
49
- class AccessibilitySignalScheduler extends Disposable {
50
- private _scheduler : RunOnceScheduler ;
51
- private _signalLoop : IDisposable | undefined ;
52
- constructor ( @IAccessibilitySignalService private readonly _accessibilitySignalService : IAccessibilitySignalService ) {
53
- super ( ) ;
54
- this . _scheduler = new RunOnceScheduler ( ( ) => {
55
- this . _signalLoop = this . _accessibilitySignalService . playSignalLoop ( AccessibilitySignal . chatResponsePending , CHAT_RESPONSE_PENDING_AUDIO_CUE_LOOP_MS ) ;
56
- } , CHAT_RESPONSE_PENDING_ALLOWANCE_MS ) ;
57
- this . _scheduler . schedule ( ) ;
58
- }
59
- override dispose ( ) : void {
60
- super . dispose ( ) ;
61
- this . _signalLoop ?. dispose ( ) ;
62
- this . _scheduler . cancel ( ) ;
63
- this . _scheduler . dispose ( ) ;
64
- }
65
- }
0 commit comments