namespace extensions {
+namespace hotword_private_constants {
+const char kHotwordServiceUnavailable[] = "Hotword Service is unavailable.";
+} // hotword_private_constants
+
namespace OnEnabledChanged =
api::hotword_private::OnEnabledChanged;
prefs::kHotwordSearchEnabled,
base::Bind(&HotwordPrivateEventService::OnEnabledChanged,
base::Unretained(this)));
+ pref_change_registrar_.Add(
+ prefs::kHotwordAlwaysOnSearchEnabled,
+ base::Bind(&HotwordPrivateEventService::OnEnabledChanged,
+ base::Unretained(this)));
}
HotwordPrivateEventService::~HotwordPrivateEventService() {
void HotwordPrivateEventService::OnEnabledChanged(
const std::string& pref_name) {
- DCHECK_EQ(pref_name, std::string(prefs::kHotwordSearchEnabled));
+ DCHECK(pref_name == std::string(prefs::kHotwordSearchEnabled) ||
+ pref_name == std::string(prefs::kHotwordAlwaysOnSearchEnabled));
SignalEvent(OnEnabledChanged::kEventName);
}
}
bool HotwordPrivateSetAudioLoggingEnabledFunction::RunSync() {
- scoped_ptr<api::hotword_private::SetEnabled::Params> params(
- api::hotword_private::SetEnabled::Params::Create(*args_));
+ scoped_ptr<api::hotword_private::SetAudioLoggingEnabled::Params> params(
+ api::hotword_private::SetAudioLoggingEnabled::Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params.get());
+ // TODO(kcarattini): Sync the chrome pref with the account-level
+ // Audio History setting.
PrefService* prefs = GetProfile()->GetPrefs();
prefs->SetBoolean(prefs::kHotwordAudioLoggingEnabled, params->state);
return true;
}
+bool HotwordPrivateSetHotwordAlwaysOnSearchEnabledFunction::RunSync() {
+ scoped_ptr<api::hotword_private::SetHotwordAlwaysOnSearchEnabled::Params>
+ params(api::hotword_private::SetHotwordAlwaysOnSearchEnabled::Params::
+ Create(*args_));
+ EXTENSION_FUNCTION_VALIDATE(params.get());
+
+ PrefService* prefs = GetProfile()->GetPrefs();
+ prefs->SetBoolean(prefs::kHotwordAlwaysOnSearchEnabled, params->state);
+ return true;
+}
+
bool HotwordPrivateGetStatusFunction::RunSync() {
api::hotword_private::StatusDetails result;
PrefService* prefs = GetProfile()->GetPrefs();
result.enabled_set = prefs->HasPrefPath(prefs::kHotwordSearchEnabled);
result.enabled = prefs->GetBoolean(prefs::kHotwordSearchEnabled);
+ result.always_on_enabled =
+ prefs->GetBoolean(prefs::kHotwordAlwaysOnSearchEnabled);
result.audio_logging_enabled = false;
CommandLine* command_line = CommandLine::ForCurrentProcess();
result.experimental_hotword_enabled = command_line->HasSwitch(
return true;
}
+bool HotwordPrivateGetLaunchStateFunction::RunSync() {
+ api::hotword_private::LaunchState result;
+
+ HotwordService* hotword_service =
+ HotwordServiceFactory::GetForProfile(GetProfile());
+ if (!hotword_service) {
+ error_ = hotword_private_constants::kHotwordServiceUnavailable;
+ return false;
+ } else {
+ result.launch_mode =
+ hotword_service->GetHotwordAudioVerificationLaunchMode();
+ }
+
+ SetResult(result.ToValue().release());
+ return true;
+}
+
} // namespace extensions