Index: chrome/browser/resources/hotword_audio_verification/flow.js |
diff --git a/chrome/browser/resources/hotword_audio_verification/flow.js b/chrome/browser/resources/hotword_audio_verification/flow.js |
index 5a244e74aa43af5a204e5861dab083b847b3e59d..f7f009d8a03adc19735a92e4874a9e1a45c73273 100644 |
--- a/chrome/browser/resources/hotword_audio_verification/flow.js |
+++ b/chrome/browser/resources/hotword_audio_verification/flow.js |
@@ -11,12 +11,17 @@ |
/** @const */ var SPEECH_TRAINING = 'speech-training-container'; |
/** @const */ var FINISHED = 'finished-container'; |
- /** @const */ var FLOWS = { |
- HOTWORD_AND_AUDIO_HISTORY: [ |
- HOTWORD_AUDIO_HISTORY, SPEECH_TRAINING, FINISHED], |
- HOTWORD_ONLY: [HOTWORD_ONLY_START, SPEECH_TRAINING, FINISHED], |
- AUDIO_HISTORY_ONLY: [AUDIO_HISTORY_START] |
- }; |
+ /** |
+ * These flows correspond to the three LaunchModes as defined in |
+ * chrome/browser/search/hotword_service.h and should be kept in sync |
+ * with them. |
+ * @const |
+ */ |
+ var FLOWS = [ |
+ [AUDIO_HISTORY_START], |
+ [HOTWORD_ONLY_START, SPEECH_TRAINING, FINISHED], |
+ [HOTWORD_AUDIO_HISTORY, SPEECH_TRAINING, FINISHED] |
+ ]; |
/** |
* Class to control the page flow of the always-on hotword and |
@@ -29,32 +34,34 @@ |
} |
/** |
- * Gets the appropriate flow and displays its first page. |
- */ |
- Flow.prototype.startFlow = function() { |
- this.currentFlow_ = getFlowForSetting_.apply(this); |
- this.advanceStep(); |
- }; |
- |
- /** |
* Advances the current step. |
*/ |
Flow.prototype.advanceStep = function() { |
this.currentStepIndex_++; |
if (this.currentStepIndex_ < this.currentFlow_.length) |
- showStep_.apply(this); |
+ this.showStep_.apply(this); |
+ }; |
+ |
+ /** |
+ * Gets the appropriate flow and displays its first page. |
+ */ |
+ Flow.prototype.startFlow = function() { |
+ if (chrome.hotwordPrivate && chrome.hotwordPrivate.getLaunchState) { |
James Hawkins
2014/09/12 20:11:56
nit: No braces for single line blocks.
kcarattini
2014/09/23 03:01:48
Done.
|
+ chrome.hotwordPrivate.getLaunchState(this.startFlowForMode_.bind(this)); |
+ } |
}; |
// ---- private methods: |
/** |
- * Gets the appropriate flow for the current configuration of settings. |
+ * Gets and starts the appropriate flow for the launch mode. |
* @private |
*/ |
- getFlowForSetting_ = function() { |
- // TODO(kcarattini): This should eventually return the correct flow for |
- // the current settings state. |
- return FLOWS.HOTWORD_AND_AUDIO_HISTORY; |
+ Flow.prototype.startFlowForMode_ = function(state) { |
+ if (state.launchMode >= 0 && state.launchMode < FLOWS.length) { |
James Hawkins
2014/09/12 20:11:56
Shouldn't we assert these conditions are true? Wh
kcarattini
2014/09/23 03:01:48
Done.
|
+ this.currentFlow_ = FLOWS[state.launchMode]; |
+ this.advanceStep(); |
+ } |
}; |
/** |
@@ -62,7 +69,7 @@ |
* also hides the previous step. |
* @private |
*/ |
- showStep_ = function() { |
+ Flow.prototype.showStep_ = function() { |
var currentStep = this.currentFlow_[this.currentStepIndex_]; |
var previousStep = null; |
if (this.currentStepIndex_ > 0) |