diff --git a/electron/helpers/apps-manager.ts b/electron/helpers/apps-manager.ts index d188c60..3353b9e 100644 --- a/electron/helpers/apps-manager.ts +++ b/electron/helpers/apps-manager.ts @@ -14,6 +14,12 @@ const wakatimeAppsSchema = z.object({ extraApps: z.array(appDataSchema), }); +const validateExtraApps = (apps: AppData[]) => { + return apps.filter((app) => { + return fs.existsSync(app.path); + }); +}; + export class AppsManager { cacheFilePath: string; installedApps: AppData[] = []; @@ -67,7 +73,7 @@ export class AppsManager { async loadApps() { const { installedApps, extraApps } = this.getCachedApps(); this.installedApps = installedApps; - this.extraApps = extraApps; + this.extraApps = validateExtraApps(extraApps); this.installedApps = await getApps(); this.saveCache(); return [...this.installedApps, ...this.extraApps]; diff --git a/electron/helpers/monitoring-manager.ts b/electron/helpers/monitoring-manager.ts index 144976f..9fdcfa9 100644 --- a/electron/helpers/monitoring-manager.ts +++ b/electron/helpers/monitoring-manager.ts @@ -30,12 +30,10 @@ export abstract class MonitoringManager { if (AppsManager.isExcludedApp(app)) { return; } - const monitoringKey = this.monitoredKey(app.path); - if (monitor) { + if (!AppsManager.instance().getApp(app.path)) { AppsManager.instance().addExtraApp(app); - } else { - AppsManager.instance().removeExtraApp(app.path); } + const monitoringKey = this.monitoredKey(app.path); const file = getDesktopWakaTimeConfigFilePath(); ConfigFileReader.setBool(file, "monitoring", monitoringKey, monitor); }