diff options
| author | guidocella <guidocella91@gmail.com> | 2017-12-16 19:56:53 +0100 | 
|---|---|---|
| committer | guidocella <guidocella91@gmail.com> | 2017-12-16 19:56:53 +0100 | 
| commit | 15b93060c76ee4d59eb8ef90f6e1f8dea4c34ac9 (patch) | |
| tree | 7c0d664473c8472661b9c41c63eb7e5fd01d9706 /ext/fg/js | |
| parent | a17e84de83e3f8750d41acf942c4fe476230d83a (diff) | |
Add option to play audio automatically
Diffstat (limited to 'ext/fg/js')
| -rw-r--r-- | ext/fg/js/float.js | 18 | ||||
| -rw-r--r-- | ext/fg/js/frontend.js | 1 | ||||
| -rw-r--r-- | ext/fg/js/popup.js | 6 | 
3 files changed, 25 insertions, 0 deletions
| diff --git a/ext/fg/js/float.js b/ext/fg/js/float.js index ff50483d..1f08702d 100644 --- a/ext/fg/js/float.js +++ b/ext/fg/js/float.js @@ -20,6 +20,8 @@  class DisplayFloat extends Display {      constructor() {          super($('#spinner'), $('#definitions')); +        this.autoPlayAudioTimer = null; +          $(window).on('message', utilAsync(this.onMessage.bind(this)));      } @@ -54,6 +56,10 @@ class DisplayFloat extends Display {                  this.kanjiShow(definitions, options, context);              }, +            clearAutoPlayTimer: () => { +                this.clearAutoPlayTimer(); +            }, +              orphaned: () => {                  this.onOrphaned();              } @@ -83,6 +89,18 @@ class DisplayFloat extends Display {              super.onKeyDown(e);          }      } + +    autoPlayAudio() { +        this.clearAutoPlayTimer(); +        this.autoPlayAudioTimer = window.setTimeout(() => super.autoPlayAudio(), 400); +    } + +    clearAutoPlayTimer() { +        if (this.autoPlayAudioTimer) { +            window.clearTimeout(this.autoPlayAudioTimer); +            this.autoPlayAudioTimer = null; +        } +    }  }  window.yomichan_display = new DisplayFloat(); diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index 3a90b3ad..266f9640 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -254,6 +254,7 @@ class Frontend {      searchClear() {          docImposterDestroy();          this.popup.hide(); +        this.popup.clearAutoPlayTimer();          if (this.options.scanning.selectText && this.textSourceLast) {              this.textSourceLast.deselect(); diff --git a/ext/fg/js/popup.js b/ext/fg/js/popup.js index d1009fe9..a17b184a 100644 --- a/ext/fg/js/popup.js +++ b/ext/fg/js/popup.js @@ -125,6 +125,12 @@ class Popup {          this.invokeApi('kanjiShow', {definitions, options, context});      } +    clearAutoPlayTimer() { +        if (this.injected) { +            this.invokeApi('clearAutoPlayTimer'); +        } +    } +      invokeApi(action, params={}) {          this.container.contentWindow.postMessage({action, params}, '*');      } |