diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2019-08-01 21:56:28 +0900 |
---|---|---|
committer | Shin'ya Ueoka <ueokande@i-beam.org> | 2019-08-01 21:56:28 +0900 |
commit | 9b2b8f0608df9e4c7a251f49d8ed818b8966786e (patch) | |
tree | cc682f861c6422af8b36145a4b99f4a50625a3cb /src/background | |
parent | 33a16b85e412abbf54f22d21feb97e876e5dd784 (diff) |
Distinct notification IDs
Diffstat (limited to 'src/background')
-rw-r--r-- | src/background/presenters/NotifyPresenter.ts | 36 | ||||
-rw-r--r-- | src/background/usecases/SettingUseCase.ts | 2 |
2 files changed, 18 insertions, 20 deletions
diff --git a/src/background/presenters/NotifyPresenter.ts b/src/background/presenters/NotifyPresenter.ts index 6498fbf..9785278 100644 --- a/src/background/presenters/NotifyPresenter.ts +++ b/src/background/presenters/NotifyPresenter.ts @@ -1,39 +1,37 @@ import { injectable } from 'tsyringe'; -const NOTIFICATION_ID = 'vimvixen-update'; +const NOTIFICATION_ID_UPDATE = 'vimvixen-update'; +const NOTIFICATION_ID_INVALID_SETTINGS = 'vimvixen-update-invalid-settings'; @injectable() export default class NotifyPresenter { async notifyUpdated(version: string, onclick: () => void): Promise<void> { let title = `Vim Vixen ${version} has been installed`; let message = 'Click here to see release notes'; - await this.notify(title, message, onclick); - } - - async notifyInvalidSettings(onclick: () => void): Promise<void> { - let title = `Loaded settings is invalid`; - // eslint-disable-next-line max-len - let message = 'The default settings is used due to the last saved settings is invalid. Check your current settings from the add-on preference'; - await this.notify(title, message, onclick); - } - private async notify( - title: string, - message: string, - onclick: () => void, - ): Promise<void> { const listener = (id: string) => { - if (id !== NOTIFICATION_ID) { + if (id !== NOTIFICATION_ID_UPDATE) { return; } - onclick(); - browser.notifications.onClicked.removeListener(listener); }; browser.notifications.onClicked.addListener(listener); - await browser.notifications.create(NOTIFICATION_ID, { + await browser.notifications.create(NOTIFICATION_ID_UPDATE, { + 'type': 'basic', + 'iconUrl': browser.extension.getURL('resources/icon_48x48.png'), + title, + message, + }); + } + + async notifyInvalidSettings(): Promise<void> { + let title = `Loaded settings is invalid`; + // eslint-disable-next-line max-len + let message = 'The default settings is used due to the last saved settings is invalid. Check your current settings from the add-on preference'; + + await browser.notifications.create(NOTIFICATION_ID_INVALID_SETTINGS, { 'type': 'basic', 'iconUrl': browser.extension.getURL('resources/icon_48x48.png'), title, diff --git a/src/background/usecases/SettingUseCase.ts b/src/background/usecases/SettingUseCase.ts index 694d3c1..53c8f1d 100644 --- a/src/background/usecases/SettingUseCase.ts +++ b/src/background/usecases/SettingUseCase.ts @@ -30,7 +30,7 @@ export default class SettingUseCase { try { value = data.toSettings(); } catch (e) { - this.notifyPresenter.notifyInvalidSettings(() => {}); + this.notifyPresenter.notifyInvalidSettings(); value = DefaultSettingData.toSettings(); } this.settingRepository.update(value!!); |