Index: chrome/browser/resources/hotword_audio_verification/main.js |
diff --git a/chrome/browser/resources/hotword_audio_verification/main.js b/chrome/browser/resources/hotword_audio_verification/main.js |
index 8c78ef4a4f05b56f796e6e51e81022f7d3b88722..63282b7bf68b9327fa4be670a9d051cdc1c21e2c 100644 |
--- a/chrome/browser/resources/hotword_audio_verification/main.js |
+++ b/chrome/browser/resources/hotword_audio_verification/main.js |
@@ -18,27 +18,28 @@ document.addEventListener('DOMContentLoaded', function() { |
}); |
} |
- $('ah-cancel-button').addEventListener('click', function(e) { |
+ var cancelTrainingHandler = function(e) { |
Dan Beam
2014/10/23 23:56:00
nit: closeAppWindow
kcarattini
2014/10/24 07:02:42
Done.
|
+ //TODO(kcarattini): Cancel training in NaCl module. |
Dan Beam
2014/10/23 23:56:01
// TODO
kcarattini
2014/10/24 07:02:42
Done.
|
appWindow.close(); |
e.preventDefault(); |
- }); |
+ }; |
- $('done-button').addEventListener('click', function(e) { |
- appWindow.close(); |
- e.preventDefault(); |
- }); |
+ $('ho-cancel-button').addEventListener('click', cancelTrainingHandler); |
+ $('st-cancel-button').addEventListener('click', cancelTrainingHandler); |
+ $('ho-close-button').addEventListener('click', cancelTrainingHandler); |
+ $('st-close-button').addEventListener('click', cancelTrainingHandler); |
Dan Beam
2014/10/23 23:56:00
event delegation?
http://davidwalsh.name/event-del
kcarattini
2014/10/24 07:02:41
Done.
|
- $('ho-cancel-button').addEventListener('click', function(e) { |
+ $('ah-cancel-button').addEventListener('click', function(e) { |
Dan Beam
2014/10/23 23:56:01
change all of these to use closeAppWindow (that yo
kcarattini
2014/10/24 07:02:42
Done.
|
appWindow.close(); |
e.preventDefault(); |
}); |
- $('hw-cancel-button').addEventListener('click', function(e) { |
+ $('done-button').addEventListener('click', function(e) { |
appWindow.close(); |
e.preventDefault(); |
}); |
- $('st-cancel-button').addEventListener('click', function(e) { |
+ $('hw-cancel-button').addEventListener('click', function(e) { |
appWindow.close(); |
e.preventDefault(); |
}); |
@@ -54,29 +55,62 @@ document.addEventListener('DOMContentLoaded', function() { |
e.preventDefault(); |
}); |
- // TODO(kcarattini): Remove this once speech training is implemented. The |
- // way to get to the next page will be to complete the speech training. |
- $('st-training').addEventListener('click', function(e) { |
- if (chrome.hotwordPrivate.setAudioLoggingEnabled) |
- chrome.hotwordPrivate.setAudioLoggingEnabled(true, function() {}); |
- |
- if (chrome.hotwordPrivate.setHotwordAlwaysOnSearchEnabled) { |
- chrome.hotwordPrivate.setHotwordAlwaysOnSearchEnabled(true, |
- flow.advanceStep.bind(flow)); |
- } |
+ $('settings-link').addEventListener('click', function(e) { |
+ chrome.browser.openTab({'url': 'chrome://settings'}, function() {}); |
e.preventDefault(); |
}); |
- // TODO(kcarattini): Remove this once speech training is implemented. The |
- // way to get to the next page will be to complete the speech training. |
- $('ho-training').addEventListener('click', function(e) { |
- if (chrome.hotwordPrivate.setAudioLoggingEnabled) |
- chrome.hotwordPrivate.setAudioLoggingEnabled(true, function() {}); |
+ // TODO(kcarattini): Update this to respond to a hotword trigger once |
+ // speech training is implemented. |
Dan Beam
2014/10/23 23:56:00
/**
* @param {string} pagePrefix Doc comment goes
kcarattini
2014/10/24 07:02:42
Done.
|
+ function doTraining(pagePrefix, divNum) { |
Dan Beam
2014/10/23 23:56:01
can't both pagePrefix and divNum be extracted via
Dan Beam
2014/10/23 23:56:01
nit: s/divNum/index or trainingStep
kcarattini
2014/10/24 07:02:41
Updated to use querySelectorAll.
kcarattini
2014/10/24 07:02:42
Done.
|
+ $(pagePrefix + '-train-text-' + divNum).textContent = 'Recorded'; |
Dan Beam
2014/10/23 23:56:01
l10n?
kcarattini
2014/10/24 07:02:42
Added TODO.
|
+ |
+ var divElem = $(pagePrefix + '-train-' + divNum); |
+ divElem.classList.remove('listening'); |
+ divElem.classList.add('recorded'); |
- if (chrome.hotwordPrivate.setHotwordAlwaysOnSearchEnabled) { |
- chrome.hotwordPrivate.setHotwordAlwaysOnSearchEnabled(true, |
- flow.advanceStep.bind(flow)); |
+ if (divNum != 3) { |
+ var nextDivElem = $(pagePrefix + '-train-' + (divNum + 1)); |
+ nextDivElem.classList.remove('not-started'); |
+ nextDivElem.classList.add('listening'); |
} |
- e.preventDefault(); |
- }); |
+ } |
+ |
+ function addTrainingEventListeners(pagePrefix, numDivs) { |
+ for (var i = 1; i < numDivs; ++i) { |
Dan Beam
2014/10/23 23:56:01
please document that this is i < numDivs instead o
kcarattini
2014/10/24 07:02:42
Done.
|
+ (function() { |
+ var j = i; |
+ |
+ $(pagePrefix + '-train-' + j).addEventListener('click', function(e) { |
+ doTraining(pagePrefix, j); |
Dan Beam
2014/10/23 23:56:01
why not just extract the index from the ID?
var
kcarattini
2014/10/24 07:02:41
Updated to use querySelectorAll
|
+ e.preventDefault(); |
+ }); |
+ })(); |
Dan Beam
2014/10/23 23:56:01
if you really want to keep this self-executing ano
|
+ } |
+ |
+ $(pagePrefix + '-train-' + numDivs).addEventListener('click', function(e) { |
rpetterson
2014/10/23 22:24:46
why isn't this handled above?
rpetterson
2014/10/23 22:35:22
Nevermind. Missed the rest of the function below.
|
+ doTraining(pagePrefix, numDivs); |
+ |
+ // Update the 'Cancel' button. |
+ // TODO(kcarattini): Localize this string. |
+ var buttonElem = $(pagePrefix + '-cancel-button'); |
+ buttonElem.textContent = 'Please wait ...'; |
+ buttonElem.classList.add('grayed-out'); |
+ buttonElem.removeEventListener('click', cancelTrainingHandler); |
+ |
+ setTimeout(function() { |
+ if (chrome.hotwordPrivate.setAudioLoggingEnabled) |
+ chrome.hotwordPrivate.setAudioLoggingEnabled(true, function() {}); |
+ |
+ if (chrome.hotwordPrivate.setHotwordAlwaysOnSearchEnabled) { |
+ chrome.hotwordPrivate.setHotwordAlwaysOnSearchEnabled(true, |
+ flow.advanceStep.bind(flow)); |
+ } |
+ e.preventDefault(); |
+ }, 2500); |
+ }); |
+ } |
+ |
+ addTrainingEventListeners('st', 3); |
+ addTrainingEventListeners('ho', 3); |
}); |