diff options
Diffstat (limited to 'src/background')
| -rw-r--r-- | src/background/controllers/VersionController.js | 4 | ||||
| -rw-r--r-- | src/background/controllers/version.js | 13 | ||||
| -rw-r--r-- | src/background/index.js | 8 | ||||
| -rw-r--r-- | src/background/presenters/NotifyPresenter.js (renamed from src/background/infrastructures/Notifier.js) | 2 | ||||
| -rw-r--r-- | src/background/usecases/VersionUseCase.js | 29 | 
5 files changed, 30 insertions, 26 deletions
| diff --git a/src/background/controllers/VersionController.js b/src/background/controllers/VersionController.js index 1bcac4c..c596f9b 100644 --- a/src/background/controllers/VersionController.js +++ b/src/background/controllers/VersionController.js @@ -5,7 +5,7 @@ export default class VersionController {      this.versionUseCase = new VersionUseCase();    } -  notifyIfUpdated() { -    this.versionUseCase.notifyIfUpdated(); +  notify() { +    this.versionUseCase.notify();    }  } diff --git a/src/background/controllers/version.js b/src/background/controllers/version.js new file mode 100644 index 0000000..ec0f634 --- /dev/null +++ b/src/background/controllers/version.js @@ -0,0 +1,13 @@ +import VersionInteractor from '../usecases/version'; + +export default class VersionController { +  constructor() { +    this.versionInteractor = new VersionInteractor(); +  } + +  notifyIfUpdated() { +    browser.runtime.onInstalled.addListener(() => { +      return this.versionInteractor.notify(); +    }); +  } +} diff --git a/src/background/index.js b/src/background/index.js index b829f99..29aa92b 100644 --- a/src/background/index.js +++ b/src/background/index.js @@ -3,6 +3,12 @@ import SettingController from './controllers/SettingController';  import VersionController from './controllers/VersionController';  new SettingController().reload(); -new VersionController().notifyIfUpdated(); + +browser.runtime.onInstalled.addListener((details) => { +  if (details.reason !== 'install' && details.reason !== 'update') { +    return; +  } +  new VersionController().notify(); +});  new ContentMessageListener().run(); diff --git a/src/background/infrastructures/Notifier.js b/src/background/presenters/NotifyPresenter.js index 1eccc47..a81f227 100644 --- a/src/background/infrastructures/Notifier.js +++ b/src/background/presenters/NotifyPresenter.js @@ -1,6 +1,6 @@  const NOTIFICATION_ID = 'vimvixen-update'; -export default class Notifier { +export default class NotifyPresenter {    notify(title, message, onclick) {      const listener = (id) => {        if (id !== NOTIFICATION_ID) { diff --git a/src/background/usecases/VersionUseCase.js b/src/background/usecases/VersionUseCase.js index 704c808..ed5112b 100644 --- a/src/background/usecases/VersionUseCase.js +++ b/src/background/usecases/VersionUseCase.js @@ -1,40 +1,25 @@  import manifest from '../../../manifest.json'; -import VersionRepository from '../repositories/VersionRepository';  import TabPresenter from '../presenters/TabPresenter'; -import Notifier from '../infrastructures/Notifier'; +import NotifyPresenter from '../presenters/NotifyPresenter';  export default class VersionUseCase {    constructor() { -    this.versionRepository = new VersionRepository();      this.tabPresenter = new TabPresenter(); -    this.notifier = new Notifier(); +    this.notifyPresenter = new NotifyPresenter();    } -  async notifyIfUpdated() { -    if (!await this.checkUpdated()) { -      return; -    } - -    let title = 'Vim Vixen ' + manifest.version + ' has been installed'; +  notify() { +    let title = `Vim Vixen ${manifest.version} has been installed`;      let message = 'Click here to see release notes'; -    this.notifier.notify(title, message, () => { -      let url = this.releaseNoteUrl(manifest.version); +    let url = this.releaseNoteUrl(manifest.version); +    this.notifyPresenter.notify(title, message, () => {        this.tabPresenter.create(url);      }); -    this.versionRepository.update(manifest.version); -  } - -  async checkUpdated() { -    let prev = await this.versionRepository.get(); -    if (!prev) { -      return true; -    } -    return manifest.version !== prev;    }    releaseNoteUrl(version) {      if (version) { -      return 'https://github.com/ueokande/vim-vixen/releases/tag/' + version; +      return `https://github.com/ueokande/vim-vixen/releases/tag/${version}`;      }      return 'https://github.com/ueokande/vim-vixen/releases/';    } | 
