From a2788e340a60aac6f1c6b614d93b0e02dc6d74b6 Mon Sep 17 00:00:00 2001 From: Kirill Ivlev Date: Thu, 21 Nov 2024 16:29:35 +0400 Subject: [PATCH] TGD-43 fix --- src/app/services/voice.service.ts | 20 ++++++++++++++++--- .../endgamepoints/endgamepoints.component.ts | 9 ++------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/app/services/voice.service.ts b/src/app/services/voice.service.ts index 956dca9..2f7cf13 100644 --- a/src/app/services/voice.service.ts +++ b/src/app/services/voice.service.ts @@ -1,14 +1,24 @@ import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders, HttpParams } from "@angular/common/http"; import { API_URL } from "../../app.constants"; -import {Observable, of, Subject} from "rxjs"; +import {delay, delayWhen, interval, Observable, of, Subject} from "rxjs"; +import {ApiService} from "./api.service"; +import {takeUntil, tap} from "rxjs/operators"; +import {SharedMethods} from "../shared/sharedmethods"; @Injectable({ providedIn: 'root' }) export class VoiceService { + destroyed$ = new Subject(); + voiceDisabled = false; - constructor(private httpClient: HttpClient) { } + constructor(private httpClient: HttpClient, private apiService: ApiService) { + this.apiService.getFeatureFlagState("DisableVoice").pipe(takeUntil(this.destroyed$)) + .subscribe((result) => { + this.voiceDisabled = result.state; + }) + } public voiceSubject = new Subject(); public audioEndedSubject = new Subject(); @@ -20,6 +30,10 @@ export class VoiceService { playAudio$(url: string) { this.voiceSubject.next(url); return new Observable((observer) => { + if(this.voiceDisabled) { + observer.next(null); + observer.complete(); + } const subscription = this.audioEndedSubject.subscribe({ next: () => { observer.next(null); @@ -27,7 +41,7 @@ export class VoiceService { } }); return () => subscription.unsubscribe(); - }) + }).pipe(delayWhen(val => this.voiceDisabled ? interval(5000) : interval(0))); } getAudioUrl(text: string,voice: number = 1) { diff --git a/src/app/views/endgamepoints/endgamepoints.component.ts b/src/app/views/endgamepoints/endgamepoints.component.ts index 7f7806f..a7e7e05 100644 --- a/src/app/views/endgamepoints/endgamepoints.component.ts +++ b/src/app/views/endgamepoints/endgamepoints.component.ts @@ -1,19 +1,14 @@ import {Component, OnInit} from '@angular/core'; import {ApiService, EndgameResultsDto, FeatureFlagStateDto} from "../../services/api.service"; import { - of, Subject, - lastValueFrom, firstValueFrom, - mergeWith, - combineLatestAll, combineLatest, - mergeMap, - forkJoin, merge + merge } from "rxjs"; import { takeUntil} from "rxjs/operators"; import {VoiceService} from "../../services/voice.service"; -import {animate, keyframes, style, transition, trigger} from "@angular/animations"; +import {animate, style, transition, trigger} from "@angular/animations"; import {Participant} from "../../../types/participant"; import {SharedMethods} from "../../shared/sharedmethods";