Fix activation bug
This commit is contained in:
parent
071902cd05
commit
004a0d5281
@ -23,6 +23,7 @@ class Yomichan {
|
||||
Handlebars.registerHelper('kanjiLinks', kanjiLinks);
|
||||
|
||||
this.translator = new Translator();
|
||||
this.options = null;
|
||||
this.importTabId = null;
|
||||
this.asyncPools = {};
|
||||
this.ankiConnectVer = 0;
|
||||
@ -30,8 +31,6 @@ class Yomichan {
|
||||
|
||||
chrome.runtime.onMessage.addListener(this.onMessage.bind(this));
|
||||
chrome.browserAction.onClicked.addListener(this.onBrowserAction.bind(this));
|
||||
chrome.tabs.onCreated.addListener(tab => this.onTabReady(tab.id));
|
||||
chrome.tabs.onUpdated.addListener(this.onTabReady.bind(this));
|
||||
|
||||
loadOptions().then(opts => {
|
||||
this.setOptions(opts);
|
||||
@ -66,11 +65,6 @@ class Yomichan {
|
||||
return true;
|
||||
}
|
||||
|
||||
onTabReady(tabId) {
|
||||
this.tabInvoke(tabId, 'setOptions', this.options);
|
||||
this.tabInvoke(tabId, 'setEnabled', this.state === 'enabled');
|
||||
}
|
||||
|
||||
onBrowserAction() {
|
||||
switch (this.state) {
|
||||
case 'disabled':
|
||||
@ -258,6 +252,14 @@ class Yomichan {
|
||||
return note;
|
||||
}
|
||||
|
||||
api_getEnabled({callback}) {
|
||||
callback(this.state === 'enabled');
|
||||
}
|
||||
|
||||
api_getOptions({callback}) {
|
||||
loadOptions().then(opts => callback(opts));
|
||||
}
|
||||
|
||||
api_addDefinition({definition, mode, callback}) {
|
||||
const note = this.formatNote(definition, mode);
|
||||
this.ankiInvokeSafe('addNote', {note}, null, callback);
|
||||
|
@ -25,7 +25,7 @@ class Driver {
|
||||
this.lastTextSource = null;
|
||||
this.pendingLookup = false;
|
||||
this.enabled = false;
|
||||
this.options = {};
|
||||
this.options = null;
|
||||
this.definitions = null;
|
||||
this.sequence = 0;
|
||||
this.fgRoot = chrome.extension.getURL('fg');
|
||||
@ -37,6 +37,13 @@ class Driver {
|
||||
window.addEventListener('keydown', this.onKeyDown.bind(this));
|
||||
window.addEventListener('scroll', e => this.hidePopup());
|
||||
window.addEventListener('resize', e => this.hidePopup());
|
||||
|
||||
getOptions().then(opts => {
|
||||
this.options = opts;
|
||||
return getEnabled();
|
||||
}).then(enabled => {
|
||||
this.enabled = enabled;
|
||||
});
|
||||
}
|
||||
|
||||
onKeyDown(e) {
|
||||
|
@ -21,6 +21,14 @@ function invokeApiBg(action, params) {
|
||||
return new Promise((resolve, reject) => chrome.runtime.sendMessage({action, params}, resolve));
|
||||
}
|
||||
|
||||
function getEnabled() {
|
||||
return invokeApiBg('getEnabled', {});
|
||||
}
|
||||
|
||||
function getOptions() {
|
||||
return invokeApiBg('getOptions', {});
|
||||
}
|
||||
|
||||
function findTerm(text) {
|
||||
return invokeApiBg('findTerm', {text});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user