import { Observable } from 'rxjs'; import { NativeService, WindowState, NotificationRequest, WindowIdle } from '@ucap-webmessenger/native'; import { HttpClient } from '@angular/common/http'; import { map } from 'rxjs/operators'; export class BrowserNativeService implements NativeService { notify(noti: NotificationRequest): void {} closeAllNotify(): void {} checkForUpdates(): Observable { return new Observable(subscriber => { try { subscriber.next(false); } catch (error) { subscriber.error(error); } finally { subscriber.complete(); } }); } showImageViewer(): void {} readFile(path: string): Observable { return this.httpClient.get(path, { responseType: 'arraybuffer' }).pipe( map(arrayBuffer => { return Buffer.from(arrayBuffer); }) ); } saveFile( buffer: Buffer, fileName: string, path?: string ): Observable { return this.httpClient.post(path, buffer, {}); } windowStateChanged(): Observable { return new Observable(subscriber => { try { subscriber.next(WindowState.Normal); } catch (error) { subscriber.error(error); } finally { subscriber.complete(); } }); } windowClose(): void {} windowMinimize(): void {} windowMaximize(): void {} idleStateChanged(): Observable { return new Observable(subscriber => { try { subscriber.next(WindowIdle.Active); } catch (error) { subscriber.error(error); } finally { subscriber.complete(); } }); } constructor(private httpClient: HttpClient) {} }