From c90ab671ffd7bab15715eb95489d2a84b563e001 Mon Sep 17 00:00:00 2001 From: Iku-turso Date: Wed, 13 Apr 2022 14:03:26 +0300 Subject: [PATCH] Make difference between soft and hard quit of application apparent Co-authored-by: Janne Savolainen Signed-off-by: Iku-turso --- ...e-application-hard-quit-injection-token.ts | 9 ++--- ...setup-closing-of-application.injectable.ts | 29 ++++++++++++-- ...e-application-soft-quit-injection-token.ts | 9 ++--- ...tative-hard-quit-application.injectable.ts | 38 ------------------- 4 files changed, 33 insertions(+), 52 deletions(-) delete mode 100644 src/main/start-main-application/before-application-soft-quit/implementations/tentative-hard-quit-application.injectable.ts diff --git a/src/main/start-main-application/before-application-hard-quit/before-application-hard-quit-injection-token.ts b/src/main/start-main-application/before-application-hard-quit/before-application-hard-quit-injection-token.ts index 664d79ff2e..9c76d683a2 100644 --- a/src/main/start-main-application/before-application-hard-quit/before-application-hard-quit-injection-token.ts +++ b/src/main/start-main-application/before-application-hard-quit/before-application-hard-quit-injection-token.ts @@ -5,8 +5,7 @@ import { getInjectionToken } from "@ogre-tools/injectable"; import type { Runnable } from "../run-many-for"; -export const beforeApplicationHardQuitInjectionToken = getInjectionToken< - Runnable<{ cancel: () => void }> - >({ - id: "before-application-hard-quit", - }); +export const beforeApplicationHardQuitInjectionToken = + getInjectionToken({ + id: "before-application-hard-quit", + }); diff --git a/src/main/start-main-application/before-application-is-ready/implementations/setup-closing-of-application.injectable.ts b/src/main/start-main-application/before-application-is-ready/implementations/setup-closing-of-application.injectable.ts index 1467082505..15588f79e3 100644 --- a/src/main/start-main-application/before-application-is-ready/implementations/setup-closing-of-application.injectable.ts +++ b/src/main/start-main-application/before-application-is-ready/implementations/setup-closing-of-application.injectable.ts @@ -7,21 +7,42 @@ import { beforeApplicationIsReadyInjectionToken } from "../before-application-is import { beforeApplicationSoftQuitInjectionToken } from "../../before-application-soft-quit/before-application-soft-quit-injection-token"; import { runManyFor } from "../../run-many-for"; import whenApplicationWillQuitInjectable from "../../../electron-app/when-application-will-quit.injectable"; +import { beforeApplicationHardQuitInjectionToken } from "../../before-application-hard-quit/before-application-hard-quit-injection-token"; +import isIntegrationTestingInjectable from "../../../../common/vars/is-integration-testing.injectable"; const setupClosingOfApplicationInjectable = getInjectable({ id: "setup-closing-of-application", instantiate: (di) => { - const whenApplicationWillQuit = di.inject(whenApplicationWillQuitInjectable); + const whenApplicationWillQuit = di.inject( + whenApplicationWillQuitInjectable, + ); - const runManyForApplicationClose = runManyFor(di)( + const runMany = runManyFor(di); + + const runRunnablesBeforeApplicationSoftQuit = runMany( beforeApplicationSoftQuitInjectionToken, ); + const runRunnablesBeforeApplicationHardQuit = runMany( + beforeApplicationHardQuitInjectionToken, + ); + + const isIntegrationTesting = di.inject(isIntegrationTestingInjectable); + return { run: () => { - whenApplicationWillQuit(async args => { - await runManyForApplicationClose(args); + whenApplicationWillQuit(async ({ cancel: cancelNativeQuit }) => { + await runRunnablesBeforeApplicationSoftQuit(); + + // &&!autoUpdateIsRunning) { + const shouldDoOnlySoftQuit = !isIntegrationTesting; + + if (shouldDoOnlySoftQuit) { + cancelNativeQuit(); + } else { + await runRunnablesBeforeApplicationHardQuit(); + } }); }, }; diff --git a/src/main/start-main-application/before-application-soft-quit/before-application-soft-quit-injection-token.ts b/src/main/start-main-application/before-application-soft-quit/before-application-soft-quit-injection-token.ts index 83055d0036..42988e8d62 100644 --- a/src/main/start-main-application/before-application-soft-quit/before-application-soft-quit-injection-token.ts +++ b/src/main/start-main-application/before-application-soft-quit/before-application-soft-quit-injection-token.ts @@ -5,8 +5,7 @@ import { getInjectionToken } from "@ogre-tools/injectable"; import type { Runnable } from "../run-many-for"; -export const beforeApplicationSoftQuitInjectionToken = getInjectionToken< - Runnable<{ cancel: () => void }> - >({ - id: "before-application-soft-quit", - }); +export const beforeApplicationSoftQuitInjectionToken = + getInjectionToken({ + id: "before-application-soft-quit", + }); diff --git a/src/main/start-main-application/before-application-soft-quit/implementations/tentative-hard-quit-application.injectable.ts b/src/main/start-main-application/before-application-soft-quit/implementations/tentative-hard-quit-application.injectable.ts deleted file mode 100644 index 05137ee5c9..0000000000 --- a/src/main/start-main-application/before-application-soft-quit/implementations/tentative-hard-quit-application.injectable.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ -import { getInjectable } from "@ogre-tools/injectable"; -import { beforeApplicationHardQuitInjectionToken } from "../../before-application-hard-quit/before-application-hard-quit-injection-token"; -import { runManyFor } from "../../run-many-for"; -import { beforeApplicationSoftQuitInjectionToken } from "../before-application-soft-quit-injection-token"; -import isIntegrationTestingInjectable from "../../../../common/vars/is-integration-testing.injectable"; - -const tentativeHardQuitApplicationInjectable = getInjectable({ - id: "tentative-hard-quit-application", - - instantiate: (di) => { - const runMany = runManyFor(di); - const runRunnablesBeforeApplicationHardQuit = runMany(beforeApplicationHardQuitInjectionToken); - const isIntegrationTesting = di.inject(isIntegrationTestingInjectable); - - return { - run: async (runParameter) => { - if (!isIntegrationTesting) { - // &&!autoUpdateIsRunning) { - runParameter.cancel(); - - return; - } - - await runRunnablesBeforeApplicationHardQuit(runParameter); - }, - }; - }, - - causesSideEffects: true, - - injectionToken: beforeApplicationSoftQuitInjectionToken, -}); - -export default tentativeHardQuitApplicationInjectable;