Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2273)

Unified Diff: chrome/browser/resources/chromeos/switch_access/prefs.js

Issue 2939133004: Added to options page to let users change keyboard mappings. (Closed)
Patch Set: Missing semicolon Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/chromeos/switch_access/prefs.js
diff --git a/chrome/browser/resources/chromeos/switch_access/prefs.js b/chrome/browser/resources/chromeos/switch_access/prefs.js
index 15ae9dd93f15c24e56ad68428bb157850a4b1504..9be570a7723b16a10dab0b1f5ff5ade579a37b2c 100644
--- a/chrome/browser/resources/chromeos/switch_access/prefs.js
+++ b/chrome/browser/resources/chromeos/switch_access/prefs.js
@@ -13,7 +13,8 @@ function SwitchAccessPrefs() {
*
* @private
*/
- this.prefs_ = Object.assign({}, this.DEFAULT_PREFS);
+ this.prefs_ = Object.assign(
+ {}, this.DEFAULT_COMMAND_KEYCODE_MAP, this.DEFAULT_OTHER_PREFS);
this.loadPrefs_();
chrome.storage.onChanged.addListener(this.handleStorageChange_.bind(this));
@@ -28,7 +29,7 @@ SwitchAccessPrefs.prototype = {
* @private
*/
loadPrefs_: function() {
- let defaultKeys = Object.keys(this.DEFAULT_PREFS);
+ let defaultKeys = Object.keys(this.prefs_);
chrome.storage.sync.get(defaultKeys, function(loadedPrefs) {
let updatedPrefs = {};
for (let key of Object.keys(loadedPrefs)) {
@@ -126,12 +127,52 @@ SwitchAccessPrefs.prototype = {
},
/**
- * The default value of all preferences. All preferences should be primitives
- * to prevent changes to default values.
+ * Get a list of the commands that can be run using a keyboard key.
+ *
+ * @return {!Array<string>}
+ */
+ getCommands: function() {
+ return Object.keys(this.DEFAULT_COMMAND_KEYCODE_MAP);
+ },
+
+ /**
+ * Returns true if |keyCode| is already used to run a command from the
+ * keyboard.
+ *
+ * @param {number} keyCode
+ * @return {boolean}
+ */
+ keyCodeIsUsed: function(keyCode) {
+ for (let command of this.getCommands()) {
+ if (keyCode === this.prefs_[command])
+ return true;
+ }
+ return false;
+ },
+
+ /**
+ * The default mapping between commands and key codes.
+ *
+ * @const
+ */
+ DEFAULT_COMMAND_KEYCODE_MAP: {
+ 'next': 49,
+ 'previous': 50,
+ 'select': 51,
+ 'options': 52,
+ 'debugNext': 54,
+ 'debugPrevious': 55,
+ 'debugChild': 56,
+ 'debugParent': 57
+ },
+
+ /**
+ * The default value of all other preferences. All preferences should be
+ * primitives to prevent changes to default values.
*
* @const
*/
- DEFAULT_PREFS: {
+ DEFAULT_OTHER_PREFS: {
'enableAutoScan': false,
'autoScanTime': 800
}

Powered by Google App Engine
This is Rietveld 408576698