aboutsummaryrefslogtreecommitdiff
path: root/src/background/presenters/IndicatorPresenter.ts
blob: 5b4b673b8ec574023e840d4842f0d3b082ec22ab (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import { injectable } from "tsyringe";

@injectable()
export default class IndicatorPresenter {
  indicate(enabled: boolean): Promise<void> {
    const path = enabled
      ? "resources/enabled_32x32.png"
      : "resources/disabled_32x32.png";
    if (typeof browser.browserAction.setIcon === "function") {
      return browser.browserAction.setIcon({ path });
    }

    // setIcon not supported on Android
    return Promise.resolve();
  }

  onClick(listener: (arg: browser.tabs.Tab) => void): void {
    browser.browserAction.onClicked.addListener(listener);
  }
}