66import * as vscode from 'vscode'
77import { getLogger } from '../../shared/logger/logger'
88import { runtimeLanguageContext } from '../util/runtimeLanguageContext'
9- import { TelemetryHelper } from '../util/telemetryHelper'
109import { AuthUtil } from '../util/authUtil'
1110import { getSelectedCustomization } from '../util/customizationUtil'
1211import { codeWhispererClient as client } from '../client/codewhisperer'
1312import { isAwsError } from '../../shared/errors'
14- import { CodewhispererLanguage } from '../../shared'
13+ import { CodewhispererLanguage , globals , undefinedIfEmpty } from '../../shared'
1514
1615/**
1716 * This singleton class is mainly used for calculating the user written code
@@ -27,9 +26,9 @@ export class UserWrittenCodeTracker {
2726 private _lastQInvocationTime : number
2827
2928 static #instance: UserWrittenCodeTracker
30- static copySnippetThreshold = 50
31- static resetQIsEditingTimeoutMs = 2 * 60 * 1000
32- static defaultCheckPeriodMillis = 5 * 60 * 1000
29+ private static copySnippetThreshold = 50
30+ private static resetQIsEditingTimeoutMs = 2 * 60 * 1000
31+ private static defaultCheckPeriodMillis = 5 * 60 * 1000
3332
3433 private constructor ( ) {
3534 this . _userWrittenNewCodeLineCount = new Map < CodewhispererLanguage , number > ( )
@@ -45,7 +44,7 @@ export class UserWrittenCodeTracker {
4544 }
4645
4746 public isActive ( ) : boolean {
48- return TelemetryHelper . instance . isTelemetryEnabled ( ) && AuthUtil . instance . isConnected ( )
47+ return globals . telemetry . telemetryEnabled && AuthUtil . instance . isConnected ( )
4948 }
5049
5150 // this should be invoked whenever there is a successful Q feature invocation
@@ -87,14 +86,13 @@ export class UserWrittenCodeTracker {
8786 const selectedCustomization = getSelectedCustomization ( )
8887
8988 for ( const [ language , charCount ] of this . _userWrittenNewCodeCharacterCount ) {
90- const lineCount = this . _userWrittenNewCodeLineCount . get ( language ) || 0
89+ const lineCount = this . getUserWrittenLines ( language )
9190 if ( charCount > 0 ) {
9291 client
9392 . sendTelemetryEvent ( {
9493 telemetryEvent : {
9594 codeCoverageEvent : {
96- customizationArn :
97- selectedCustomization . arn === '' ? undefined : selectedCustomization . arn ,
95+ customizationArn : undefinedIfEmpty ( selectedCustomization . arn ) ,
9896 programmingLanguage : {
9997 languageName : runtimeLanguageContext . toRuntimeLanguage ( language ) ,
10098 } ,
@@ -185,9 +183,9 @@ export class UserWrittenCodeTracker {
185183 }
186184 const language = runtimeLanguageContext . normalizeLanguage ( e . document . languageId )
187185 if ( language ) {
188- const charCount = this . _userWrittenNewCodeCharacterCount . get ( language ) || 0
186+ const charCount = this . getUserWrittenCharacters ( language )
189187 this . _userWrittenNewCodeCharacterCount . set ( language , charCount + contentChange . text . length )
190- const lineCount = this . _userWrittenNewCodeLineCount . get ( language ) || 0
188+ const lineCount = this . getUserWrittenLines ( language )
191189 this . _userWrittenNewCodeLineCount . set ( language , lineCount + this . countNewLines ( contentChange . text ) )
192190 // start 5 min data reporting once valid user input is detected
193191 this . tryStartTimer ( )
0 commit comments