Add start conflict prompts for existing extracted packages in v1.4.2

This commit is contained in:
Sucukdeluxe
2026-02-27 17:54:56 +01:00
parent 1c92591bf1
commit 01ed725136
11 changed files with 572 additions and 24 deletions
+23 -2
View File
@@ -1,6 +1,16 @@
import path from "node:path";
import { app } from "electron";
import { AddLinksPayload, AppSettings, ParsedPackageInput, UiSnapshot, UpdateCheckResult, UpdateInstallResult } from "../shared/types";
import {
AddLinksPayload,
AppSettings,
DuplicatePolicy,
ParsedPackageInput,
StartConflictEntry,
StartConflictResolutionResult,
UiSnapshot,
UpdateCheckResult,
UpdateInstallResult
} from "../shared/types";
import { importDlcContainers } from "./container";
import { APP_VERSION, defaultSettings } from "./constants";
import { DownloadManager } from "./download-manager";
@@ -39,9 +49,12 @@ export class AppController {
if (this.settings.autoResumeOnStart) {
const snapshot = this.manager.getSnapshot();
const hasPending = Object.values(snapshot.session.items).some((item) => item.status === "queued" || item.status === "reconnect_wait");
if (hasPending && this.hasAnyProviderToken(this.settings)) {
const hasConflicts = this.manager.getStartConflicts().length > 0;
if (hasPending && this.hasAnyProviderToken(this.settings) && !hasConflicts) {
this.manager.start();
logger.info("Auto-Resume beim Start aktiviert");
} else if (hasPending && hasConflicts) {
logger.info("Auto-Resume übersprungen: Start-Konflikte erkannt");
}
}
}
@@ -113,6 +126,14 @@ export class AppController {
return result;
}
public getStartConflicts(): StartConflictEntry[] {
return this.manager.getStartConflicts();
}
public resolveStartConflict(packageId: string, policy: DuplicatePolicy): StartConflictResolutionResult {
return this.manager.resolveStartConflict(packageId, policy);
}
public clearAll(): void {
this.manager.clearAll();
}