import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';

@Injectable()
export class ProgressTracker {
    private progress: number;

    private downloadProgressSubject = new Subject<number>();
    private uploadProgressSubject = new Subject<number>();

    downloadProgress = this.downloadProgressSubject.asObservable();
    uploadProgress = this.uploadProgressSubject.asObservable();

    setProgress(number: number): void {
        this.progress = number;
    }

    getProgress(): number {
        return this.progress;
    }

    updateDownload(percentage: number): any {
        this.downloadProgressSubject.next(percentage);
    }

    updateUpload(percentage: number): any {
        this.uploadProgressSubject.next(percentage);
    }
}
