From 22dea5118f8ed6dfe43e59b5fae4e218038c1d68 Mon Sep 17 00:00:00 2001 From: mszhangopopop <128134674+mszhangopopop@users.noreply.github.com> Date: Sat, 28 Mar 2026 20:19:02 +0800 Subject: [PATCH] Separate enabled and disabled plug-ins for ejection Refactor eject logic to separate enabled and disabled plug-ins for ejection. --- TrollFools/EjectListView.swift | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/TrollFools/EjectListView.swift b/TrollFools/EjectListView.swift index 6966318e..b3059ca7 100644 --- a/TrollFools/EjectListView.swift +++ b/TrollFools/EjectListView.swift @@ -115,7 +115,6 @@ struct EjectListView: View { .textInputAutocapitalization(.never) .autocorrectionDisabled(true) } else { - // Fallback on earlier versions ejectListView .onReceive(searchViewModel.$searchKeyword) { ejectList.filter.searchKeyword = $0 @@ -332,7 +331,14 @@ struct EjectListView: View { do { let plugInsToRemove = offsets.map { ejectList.filteredPlugIns[$0] } - let plugInURLsToRemove = plugInsToRemove.map { $0.url } + + let enabledURLsToRemove = plugInsToRemove + .filter { $0.isEnabled } + .map { $0.url } + + let disabledURLsToRemove = plugInsToRemove + .filter { !$0.isEnabled } + .map { $0.url } let injector = try InjectorV3(ejectList.app.url) logFileURL = injector.latestLogFileURL @@ -349,7 +355,13 @@ struct EjectListView: View { injector.preferMainExecutable = preferMainExecutable injector.injectStrategy = injectStrategy - try injector.eject(plugInURLsToRemove, shouldDesist: true) + if !enabledURLsToRemove.isEmpty { + try injector.eject(enabledURLsToRemove, shouldDesist: true) + } + + if !disabledURLsToRemove.isEmpty { + injector.desist(disabledURLsToRemove) + } ejectList.app.reload() ejectList.reload()