From ce0e7ae19e32954e6abeb713a1e02f8af1653343 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Sun, 12 Nov 2023 13:35:34 +0100 Subject: [PATCH] [bugfix] fix download success notification when canceling oculus download --- src/main/models/oculus-downloader.class.ts | 3 ++- .../oculus-downloader.service.ts | 14 +++++++++++--- .../bs-version-download/oculus-download.model.ts | 1 + 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/models/oculus-downloader.class.ts b/src/main/models/oculus-downloader.class.ts index edbd3936..47cc9067 100644 --- a/src/main/models/oculus-downloader.class.ts +++ b/src/main/models/oculus-downloader.class.ts @@ -6,6 +6,7 @@ import path from "path"; import { inflate } from "pako" import { EMPTY, Observable, ReplaySubject, Subscriber, catchError, filter, from, lastValueFrom, mergeMap, scan, share, tap } from "rxjs"; import { Progression, hashFile } from "../helpers/fs.helpers"; +import { OculusDownloaderErrorCodes } from "../../shared/models/bs-version-download/oculus-download.model"; export class OculusDownloader { @@ -196,7 +197,7 @@ export class OculusDownloader { public stopDownload(){ this.isDownloading = false; - this.downloadSubscriber?.complete(); + this.downloadSubscriber?.error(CustomError.fromError(new Error("Download canceled"), OculusDownloaderErrorCodes.DOWNLOAD_CANCELLED)); } } diff --git a/src/renderer/services/bs-version-download/oculus-downloader.service.ts b/src/renderer/services/bs-version-download/oculus-downloader.service.ts index b833f4f0..ecd9b09c 100644 --- a/src/renderer/services/bs-version-download/oculus-downloader.service.ts +++ b/src/renderer/services/bs-version-download/oculus-downloader.service.ts @@ -70,7 +70,7 @@ export class OculusDownloaderService extends AbstractBsDownloaderService impleme } private tryAutoDownload(downloadInfo: DownloadInfo): Observable>{ - const ignoreCode = [MetaAuthErrorCodes.NO_META_AUTH_TOKEN]; + const ignoreCode = [MetaAuthErrorCodes.NO_META_AUTH_TOKEN, OculusDownloaderErrorCodes.DOWNLOAD_CANCELLED]; return this.handleDownload( this.ipc.sendV2>("bs-oculus-auto-download", { args: downloadInfo }), ignoreCode @@ -78,7 +78,7 @@ export class OculusDownloaderService extends AbstractBsDownloaderService impleme } private startDownloadBsVersion(downloadInfo: DownloadInfo): Observable>{ - const ignoreCode = [MetaAuthErrorCodes.META_LOGIN_WINDOW_CLOSED_BY_USER]; + const ignoreCode = [MetaAuthErrorCodes.META_LOGIN_WINDOW_CLOSED_BY_USER, OculusDownloaderErrorCodes.DOWNLOAD_CANCELLED]; return this.handleDownload( this.ipc.sendV2>("bs-oculus-download", { args: downloadInfo }), ignoreCode @@ -92,7 +92,12 @@ export class OculusDownloaderService extends AbstractBsDownloaderService impleme return (async () => { const autoDownload = await lastValueFrom(this.tryAutoDownload({ bsVersion, isVerification })).then(() => true).catch((err: CustomError) => { - const doNotRestartCodes: string[] = [OculusDownloaderErrorCodes.ALREADY_DOWNLOADING, OculusDownloaderErrorCodes.SOME_FILES_FAILED_TO_DOWNLOAD, OculusDownloaderErrorCodes.VERIFY_INTEGRITY_FAILED]; + const doNotRestartCodes: string[] = [ + OculusDownloaderErrorCodes.ALREADY_DOWNLOADING, + OculusDownloaderErrorCodes.SOME_FILES_FAILED_TO_DOWNLOAD, + OculusDownloaderErrorCodes.VERIFY_INTEGRITY_FAILED, + OculusDownloaderErrorCodes.DOWNLOAD_CANCELLED + ]; autoDownloadFailed = true; if(doNotRestartCodes.includes(err?.code)){ @@ -123,6 +128,9 @@ export class OculusDownloaderService extends AbstractBsDownloaderService impleme return lastValueFrom(this.startDownloadBsVersion({ bsVersion, isVerification, token: tokenRes.data })).then(() => true); })().then(res => { + + console.log("aaa", res); + if(autoDownloadFailed || !res){ return bsVersion; } diff --git a/src/shared/models/bs-version-download/oculus-download.model.ts b/src/shared/models/bs-version-download/oculus-download.model.ts index 486c32ec..bc9e1861 100644 --- a/src/shared/models/bs-version-download/oculus-download.model.ts +++ b/src/shared/models/bs-version-download/oculus-download.model.ts @@ -7,6 +7,7 @@ export enum OculusDownloaderErrorCodes { UNABLE_TO_GET_MANIFEST = "UNABLE_TO_GET_MANIFEST", VERIFY_INTEGRITY_FAILED = "VERIFY_INTEGRITY_FAILED", SOME_FILES_FAILED_TO_DOWNLOAD = "SOME_FILES_FAILED_TO_DOWNLOAD", + DOWNLOAD_CANCELLED = "DOWNLOAD_CANCELLED", } export enum MetaAuthErrorCodes {