+
Other
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/options.js b/options.js
index 32bd02f..cf64c40 100644
--- a/options.js
+++ b/options.js
@@ -6,6 +6,7 @@ var tcDefaults = {
rememberSpeed: false, // default: false
audioBoolean: false, // default: false
startHidden: false, // default: false
+ enabled: true, // default enabled
controllerOpacity: 0.3, // default: 0.3
keyBindings: [
{action: "slower", key: 83, value: 0.1, force: false, predefined: true}, // S
@@ -168,6 +169,7 @@ function save_options() {
var displayKeyCode = document.getElementById('displayKeyInput').keyCode;
var rememberSpeed = document.getElementById('rememberSpeed').checked;
var audioBoolean = document.getElementById('audioBoolean').checked;
+ var enabled = document.getElementById('enabled').checked;
var startHidden = document.getElementById('startHidden').checked;
var controllerOpacity = document.getElementById('controllerOpacity').value;
var blacklist = document.getElementById('blacklist').value;
@@ -179,6 +181,7 @@ function save_options() {
displayKeyCode: displayKeyCode,
rememberSpeed: rememberSpeed,
audioBoolean: audioBoolean,
+ enabled: enabled,
startHidden: startHidden,
controllerOpacity: controllerOpacity,
keyBindings: keyBindings,
@@ -199,6 +202,7 @@ function restore_options() {
updateShortcutInputText('displayKeyInput', storage.displayKeyCode);
document.getElementById('rememberSpeed').checked = storage.rememberSpeed;
document.getElementById('audioBoolean').checked = storage.audioBoolean;
+ document.getElementById('enabled').checked = storage.enabled;
document.getElementById('startHidden').checked = storage.startHidden;
document.getElementById('controllerOpacity').value = storage.controllerOpacity;
document.getElementById('blacklist').value = storage.blacklist;
diff --git a/popup.css b/popup.css
index 74bfe99..f8b9a92 100644
--- a/popup.css
+++ b/popup.css
@@ -27,3 +27,7 @@ button {
font-size: 0.95em;
margin: 0.15em 0;
}
+
+.hide {
+ display: none;
+}
diff --git a/popup.html b/popup.html
index 9fd9ae0..51536d5 100644
--- a/popup.html
+++ b/popup.html
@@ -6,6 +6,10 @@
+
+
+
+
diff --git a/popup.js b/popup.js
index a60b107..1a0dfb4 100644
--- a/popup.js
+++ b/popup.js
@@ -10,4 +10,49 @@ document.addEventListener('DOMContentLoaded', function () {
document.querySelector('#feedback').addEventListener('click', function() {
window.open("https://github.com/igrigorik/videospeed/issues");
});
+
+ document.querySelector('#enable').addEventListener('click', function() {
+ toggleEnabled(true, settingsSavedReloadMessage);
+ });
+
+ document.querySelector('#disable').addEventListener('click', function() {
+ toggleEnabled(false, settingsSavedReloadMessage);
+ });
+
+ chrome.storage.sync.get({enabled: true}, function(storage) {
+ toggleEnabledUI(storage.enabled);
+ });
+
+ function toggleEnabled(enabled, callback){
+ chrome.storage.sync.set({
+ enabled: enabled,
+ }, function() {
+ toggleEnabledUI(enabled);
+ if(callback) callback(enabled);
+ });
+ }
+
+ function toggleEnabledUI(enabled){
+ document.querySelector('#enable').classList.toggle("hide", enabled);
+ document.querySelector('#disable').classList.toggle("hide", !enabled);
+
+ const suffix = `${(enabled ? "" : "_disabled")}.png`
+ chrome.browserAction.setIcon({
+ "path": {
+ "19": "icons/icon19" + suffix,
+ "38": "icons/icon38" + suffix,
+ "48": "icons/icon48" + suffix
+ }
+ });
+ }
+
+ function settingsSavedReloadMessage(enabled){
+ setStatusMessage(`${enabled ? "Enabled" : "Disabled"}. Reload page to see changes`);
+ }
+
+ function setStatusMessage(str){
+ const status_element = document.querySelector('#status')
+ status_element.classList.toggle("hide", false);
+ status_element.innerText = str;
+ }
});