diff --git a/electron/assets/icons/indicator/running-anim-d/0.png b/electron/assets/icons/indicator/running-anim-d/0.png new file mode 100644 index 000000000..4ffe6e7c4 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/0.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/0@2x.png b/electron/assets/icons/indicator/running-anim-d/0@2x.png new file mode 100644 index 000000000..c4a879af4 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/0@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/1.png b/electron/assets/icons/indicator/running-anim-d/1.png new file mode 100644 index 000000000..1114cbfa7 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/1.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/10.png b/electron/assets/icons/indicator/running-anim-d/10.png new file mode 100644 index 000000000..5b47dbe2a Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/10.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/10@2x.png b/electron/assets/icons/indicator/running-anim-d/10@2x.png new file mode 100644 index 000000000..99eeacf59 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/10@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/11.png b/electron/assets/icons/indicator/running-anim-d/11.png new file mode 100644 index 000000000..1640d0896 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/11.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/11@2x.png b/electron/assets/icons/indicator/running-anim-d/11@2x.png new file mode 100644 index 000000000..081001047 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/11@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/12.png b/electron/assets/icons/indicator/running-anim-d/12.png new file mode 100644 index 000000000..aeb41944f Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/12.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/12@2x.png b/electron/assets/icons/indicator/running-anim-d/12@2x.png new file mode 100644 index 000000000..7aa8e805d Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/12@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/13.png b/electron/assets/icons/indicator/running-anim-d/13.png new file mode 100644 index 000000000..41e4cd0ff Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/13.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/13@2x.png b/electron/assets/icons/indicator/running-anim-d/13@2x.png new file mode 100644 index 000000000..5e1506644 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/13@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/14.png b/electron/assets/icons/indicator/running-anim-d/14.png new file mode 100644 index 000000000..2b5c092c4 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/14.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/14@2x.png b/electron/assets/icons/indicator/running-anim-d/14@2x.png new file mode 100644 index 000000000..59f02539b Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/14@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/15.png b/electron/assets/icons/indicator/running-anim-d/15.png new file mode 100644 index 000000000..aba9152ae Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/15.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/15@2x.png b/electron/assets/icons/indicator/running-anim-d/15@2x.png new file mode 100644 index 000000000..a7775ace3 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/15@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/1@2x.png b/electron/assets/icons/indicator/running-anim-d/1@2x.png new file mode 100644 index 000000000..a3ee75c8f Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/1@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/2.png b/electron/assets/icons/indicator/running-anim-d/2.png new file mode 100644 index 000000000..923564500 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/2.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/2@2x.png b/electron/assets/icons/indicator/running-anim-d/2@2x.png new file mode 100644 index 000000000..8d7e41b00 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/2@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/3.png b/electron/assets/icons/indicator/running-anim-d/3.png new file mode 100644 index 000000000..c2e84f6b9 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/3.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/3@2x.png b/electron/assets/icons/indicator/running-anim-d/3@2x.png new file mode 100644 index 000000000..9d6e29446 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/3@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/4.png b/electron/assets/icons/indicator/running-anim-d/4.png new file mode 100644 index 000000000..2ec3172ba Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/4.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/4@2x.png b/electron/assets/icons/indicator/running-anim-d/4@2x.png new file mode 100644 index 000000000..973ab3d54 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/4@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/5.png b/electron/assets/icons/indicator/running-anim-d/5.png new file mode 100644 index 000000000..21a0da19b Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/5.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/5@2x.png b/electron/assets/icons/indicator/running-anim-d/5@2x.png new file mode 100644 index 000000000..3d9f47ca6 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/5@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/6.png b/electron/assets/icons/indicator/running-anim-d/6.png new file mode 100644 index 000000000..2b0447767 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/6.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/6@2x.png b/electron/assets/icons/indicator/running-anim-d/6@2x.png new file mode 100644 index 000000000..b3ddda6e0 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/6@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/7.png b/electron/assets/icons/indicator/running-anim-d/7.png new file mode 100644 index 000000000..faa3fa669 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/7.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/7@2x.png b/electron/assets/icons/indicator/running-anim-d/7@2x.png new file mode 100644 index 000000000..1a476bdc5 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/7@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/8.png b/electron/assets/icons/indicator/running-anim-d/8.png new file mode 100644 index 000000000..3f687e60b Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/8.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/8@2x.png b/electron/assets/icons/indicator/running-anim-d/8@2x.png new file mode 100644 index 000000000..fc5350544 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/8@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/9.png b/electron/assets/icons/indicator/running-anim-d/9.png new file mode 100644 index 000000000..b3d5f6e42 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/9.png differ diff --git a/electron/assets/icons/indicator/running-anim-d/9@2x.png b/electron/assets/icons/indicator/running-anim-d/9@2x.png new file mode 100644 index 000000000..762fee8d0 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-d/9@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/0.png b/electron/assets/icons/indicator/running-anim-l/0.png new file mode 100644 index 000000000..f5436959a Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/0.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/0@2x.png b/electron/assets/icons/indicator/running-anim-l/0@2x.png new file mode 100644 index 000000000..ad69e181b Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/0@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/1.png b/electron/assets/icons/indicator/running-anim-l/1.png new file mode 100644 index 000000000..36f5fca77 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/1.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/10.png b/electron/assets/icons/indicator/running-anim-l/10.png new file mode 100644 index 000000000..97a4970d0 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/10.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/10@2x.png b/electron/assets/icons/indicator/running-anim-l/10@2x.png new file mode 100644 index 000000000..f1034da72 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/10@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/11.png b/electron/assets/icons/indicator/running-anim-l/11.png new file mode 100644 index 000000000..61e18dff0 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/11.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/11@2x.png b/electron/assets/icons/indicator/running-anim-l/11@2x.png new file mode 100644 index 000000000..060efee5b Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/11@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/12.png b/electron/assets/icons/indicator/running-anim-l/12.png new file mode 100644 index 000000000..ed9ccd15a Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/12.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/12@2x.png b/electron/assets/icons/indicator/running-anim-l/12@2x.png new file mode 100644 index 000000000..268805443 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/12@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/13.png b/electron/assets/icons/indicator/running-anim-l/13.png new file mode 100644 index 000000000..304dc29b5 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/13.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/13@2x.png b/electron/assets/icons/indicator/running-anim-l/13@2x.png new file mode 100644 index 000000000..4ea4f1445 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/13@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/14.png b/electron/assets/icons/indicator/running-anim-l/14.png new file mode 100644 index 000000000..5bbd6bb1f Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/14.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/14@2x.png b/electron/assets/icons/indicator/running-anim-l/14@2x.png new file mode 100644 index 000000000..07b4a225b Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/14@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/15.png b/electron/assets/icons/indicator/running-anim-l/15.png new file mode 100644 index 000000000..faf1d4a56 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/15.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/15@2x.png b/electron/assets/icons/indicator/running-anim-l/15@2x.png new file mode 100644 index 000000000..06d7d6d90 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/15@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/1@2x.png b/electron/assets/icons/indicator/running-anim-l/1@2x.png new file mode 100644 index 000000000..fed9e02ab Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/1@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/2.png b/electron/assets/icons/indicator/running-anim-l/2.png new file mode 100644 index 000000000..b904e284d Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/2.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/2@2x.png b/electron/assets/icons/indicator/running-anim-l/2@2x.png new file mode 100644 index 000000000..57a21c1cf Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/2@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/3.png b/electron/assets/icons/indicator/running-anim-l/3.png new file mode 100644 index 000000000..f92a4c2de Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/3.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/3@2x.png b/electron/assets/icons/indicator/running-anim-l/3@2x.png new file mode 100644 index 000000000..c911d61c9 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/3@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/4.png b/electron/assets/icons/indicator/running-anim-l/4.png new file mode 100644 index 000000000..e03ac923f Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/4.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/4@2x.png b/electron/assets/icons/indicator/running-anim-l/4@2x.png new file mode 100644 index 000000000..9063c834b Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/4@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/5.png b/electron/assets/icons/indicator/running-anim-l/5.png new file mode 100644 index 000000000..20bcab0be Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/5.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/5@2x.png b/electron/assets/icons/indicator/running-anim-l/5@2x.png new file mode 100644 index 000000000..87f207055 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/5@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/6.png b/electron/assets/icons/indicator/running-anim-l/6.png new file mode 100644 index 000000000..423825060 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/6.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/6@2x.png b/electron/assets/icons/indicator/running-anim-l/6@2x.png new file mode 100644 index 000000000..5eb48dac7 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/6@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/7.png b/electron/assets/icons/indicator/running-anim-l/7.png new file mode 100644 index 000000000..eadc07018 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/7.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/7@2x.png b/electron/assets/icons/indicator/running-anim-l/7@2x.png new file mode 100644 index 000000000..a88cdd67b Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/7@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/8.png b/electron/assets/icons/indicator/running-anim-l/8.png new file mode 100644 index 000000000..fd1d93c0e Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/8.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/8@2x.png b/electron/assets/icons/indicator/running-anim-l/8@2x.png new file mode 100644 index 000000000..f4133fd29 Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/8@2x.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/9.png b/electron/assets/icons/indicator/running-anim-l/9.png new file mode 100644 index 000000000..de1b0785b Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/9.png differ diff --git a/electron/assets/icons/indicator/running-anim-l/9@2x.png b/electron/assets/icons/indicator/running-anim-l/9@2x.png new file mode 100644 index 000000000..7145734ad Binary files /dev/null and b/electron/assets/icons/indicator/running-anim-l/9@2x.png differ diff --git a/electron/assets/icons/indicator/stopped-d-@2x.png b/electron/assets/icons/indicator/stopped-d-@2x.png new file mode 100644 index 000000000..4f6def82b Binary files /dev/null and b/electron/assets/icons/indicator/stopped-d-@2x.png differ diff --git a/electron/assets/icons/indicator/stopped-d.png b/electron/assets/icons/indicator/stopped-d.png new file mode 100644 index 000000000..125f54217 Binary files /dev/null and b/electron/assets/icons/indicator/stopped-d.png differ diff --git a/electron/assets/icons/indicator/stopped-l-@2x.png b/electron/assets/icons/indicator/stopped-l-@2x.png new file mode 100644 index 000000000..fdd1f2e17 Binary files /dev/null and b/electron/assets/icons/indicator/stopped-l-@2x.png differ diff --git a/electron/assets/icons/indicator/stopped-l.png b/electron/assets/icons/indicator/stopped-l.png new file mode 100644 index 000000000..e2d90f155 Binary files /dev/null and b/electron/assets/icons/indicator/stopped-l.png differ diff --git a/electron/indicator.ts b/electron/indicator.ts index 493b5f152..c24bc12ce 100644 --- a/electron/indicator.ts +++ b/electron/indicator.ts @@ -1,14 +1,12 @@ import { App, ipcMain, Menu, nativeTheme, Tray } from 'electron'; -import { existsSync, readFileSync } from 'fs'; // const dbus = require('./dbus'); -import { errorHandler } from './error-handler'; import { IPC } from './ipc-events.const'; -const GNOME_SHELL_EXT_MIN_VERSION = 2; - let tray; let isIndicatorRunning = false; -let isGnomeShellExtensionRunning = false; +let DIR: string; + +const isGnomeShellExtensionRunning = false; export const initIndicator = ({ IS_LINUX, @@ -27,68 +25,25 @@ export const initIndicator = ({ app: App; ICONS_FOLDER: string; }) => { - - const isGnomeShellExtensionInstalled = isGnomeShellInstalled(IS_LINUX, IS_GNOME); + DIR = ICONS_FOLDER + 'indicator/'; initAppListeners(app); - initListeners(isGnomeShellExtensionInstalled); + initListeners(); - // if we have the gnome shell extension installed set up bus - if (IS_GNOME && isGnomeShellExtensionInstalled) { - // TODO - // dbus.init({ - // quitApp, - // showApp, - // }); - isGnomeShellExtensionRunning = true; - return; - } else if (IS_GNOME) { - // don't start anything on GNOME as the indicator might not be visible and - // the quiting behaviour confusing - return; - } else { - // otherwise create a regular tray icon - // switch tray icon based on - const trayIcoFile = nativeTheme.shouldUseDarkColors - ? 'tray-ico-d.png' - : 'tray-ico-l.png'; + const suf = nativeTheme.shouldUseDarkColors + ? '-d.png' + : '-l.png'; + tray = new Tray(DIR + `stopped${suf}`); + tray.setContextMenu(createContextMenu(showApp, quitApp)); - tray = new Tray(ICONS_FOLDER + trayIcoFile); - - tray.setContextMenu(createContextMenu(showApp, quitApp)); - - tray.on('click', () => { - showApp(); - }); - isIndicatorRunning = true; - return tray; - } + tray.on('click', () => { + showApp(); + }); + isIndicatorRunning = true; + return tray; + // } }; -function isGnomeShellInstalled(IS_LINUX, IS_GNOME) { - // check if shell extension is installed - let isGnomeShellExtInstalled = false; - if (IS_LINUX && IS_GNOME) { - // tslint:disable-next-line - const LINUX_HOME_DIR = process.env['HOME']; - const EXTENSION_PATH = LINUX_HOME_DIR + '/.local/share/gnome-shell/extensions/indicator@johannes.super-productivity.com'; - - if (existsSync(EXTENSION_PATH)) { - const metaData = readFileSync(EXTENSION_PATH + '/metadata.json').toString(); - const version = JSON.parse(metaData).version; - if (version >= GNOME_SHELL_EXT_MIN_VERSION) { - isGnomeShellExtInstalled = true; - } else { - errorHandler('Indicator: Outdated version ' - + version - + ' of Gnome Shell Extension installed. Please install at least version ' - + GNOME_SHELL_EXT_MIN_VERSION + '.'); - } - } - } - return isGnomeShellExtInstalled; -} - function initAppListeners(app) { if (tray) { app.on('before-quit', () => { @@ -99,7 +54,7 @@ function initAppListeners(app) { } } -function initListeners(isGnomeShellExtInstalled) { +function initListeners() { ipcMain.on(IPC.CURRENT_TASK_UPDATED, (ev, params) => { const currentTask = params.current; // const lastActiveTaskTask = params.lastActiveTask; @@ -109,25 +64,26 @@ function initListeners(isGnomeShellExtInstalled) { if (currentTask) { msg = createIndicatorStr(currentTask); } + console.log(currentTask); - // if (isGnomeShellExtInstalled) { - // // gnome indicator handling - // if (currentTask && currentTask.title) { - // dbus.setTask(currentTask.id, msg); - // } else if (!currentTask && lastActiveTaskTask && !lastActiveTaskTask.isDone) { - // const msg = createIndicatorStr(lastActiveTaskTask); - // dbus.setTask('PAUSED', msg); - // } else { - // dbus.setTask('NONE', 'NONE'); - // } - // } else - // if (tray) { // tray handling if (currentTask && currentTask.title) { + const suf = nativeTheme.shouldUseDarkColors + ? '-d' + : '-l'; + const progress = currentTask.timeSpent / currentTask.timeEstimate; + const f = Math.min(Math.round(progress * 15), 15); + const t = DIR + `running-anim${suf}/${f || 0}@2x.png`; + tray.setTitle(msg); + tray.setImage(t); } else { tray.setTitle(''); + const suf = nativeTheme.shouldUseDarkColors + ? '-d.png' + : '-l.png'; + tray.setImage(DIR + `stopped${suf}`); } } }); diff --git a/src/app/features/tasks/store/task-electron.effects.ts b/src/app/features/tasks/store/task-electron.effects.ts index 38c2c1d70..95a89c8bb 100644 --- a/src/app/features/tasks/store/task-electron.effects.ts +++ b/src/app/features/tasks/store/task-electron.effects.ts @@ -21,6 +21,8 @@ export class TaskElectronEffects { taskChangeElectron$: any = this._actions$.pipe( ofType( TaskActionTypes.SetCurrentTask, + TaskActionTypes.UnsetCurrentTask, + TaskActionTypes.AddTimeSpent, ), withLatestFrom(this._store$.pipe(select(selectCurrentTask))), tap(([action, current]) => {