diff --git a/src/background/presenters/IndicatorPresenter.ts b/src/background/presenters/IndicatorPresenter.ts index d9a615a..5d9c21f 100644 --- a/src/background/presenters/IndicatorPresenter.ts +++ b/src/background/presenters/IndicatorPresenter.ts @@ -3,7 +3,13 @@ export default class IndicatorPresenter { let path = enabled ? 'resources/enabled_32x32.png' : 'resources/disabled_32x32.png'; - return browser.browserAction.setIcon({ path }); + if (typeof browser.browserAction.setIcon === "function") { + return browser.browserAction.setIcon({ path }); + } + else { + // setIcon not supported on Android + return Promise.resolve(); + } } onClick(listener: (arg: browser.tabs.Tab) => void): void { diff --git a/src/background/usecases/CompletionsUseCase.ts b/src/background/usecases/CompletionsUseCase.ts index ae1ceed..7f6322e 100644 --- a/src/background/usecases/CompletionsUseCase.ts +++ b/src/background/usecases/CompletionsUseCase.ts @@ -52,13 +52,15 @@ export default class CompletionsUseCase { if (engines.length > 0) { groups.push({ name: 'Search Engines', items: engines }); } - } else if (c === 'h') { + // browser.history not supported on Android + } else if (c === 'h' && typeof browser.history === "object") { // eslint-disable-next-line no-await-in-loop let histories = await this.queryHistoryItems(name, keywords); if (histories.length > 0) { groups.push({ name: 'History', items: histories }); } - } else if (c === 'b') { + // browser.bookmarks not supported on Android + } else if (c === 'b' && typeof browser.bookmarks === "object") { // eslint-disable-next-line no-await-in-loop let bookmarks = await this.queryBookmarkItems(name, keywords); if (bookmarks.length > 0) { diff --git a/src/background/usecases/LinkUseCase.ts b/src/background/usecases/LinkUseCase.ts index 2f4df7b..21cf0e7 100644 --- a/src/background/usecases/LinkUseCase.ts +++ b/src/background/usecases/LinkUseCase.ts @@ -12,8 +12,9 @@ export default class LinkUseCase { } openNewTab(url: string, openerId: number, background: boolean): Promise { - return this.tabPresenter.create(url, { - openerTabId: openerId, active: !background - }); + // openerTabId not supported on Android + let properties = typeof browser.tabs.Tab === "object" ? + { openerTabId: openerId, active: !background } : { active: !background }; + return this.tabPresenter.create(url, properties); } }