Index: chrome/browser/ui/app_list/search/search_resource_manager.cc |
diff --git a/chrome/browser/ui/app_list/search/search_resource_manager.cc b/chrome/browser/ui/app_list/search/search_resource_manager.cc |
index 4c6a1c1255276eeb4c1719a4802b868f20ba23e9..dfa9b54c5657cb5446142c770cb10ca25b07740e 100644 |
--- a/chrome/browser/ui/app_list/search/search_resource_manager.cc |
+++ b/chrome/browser/ui/app_list/search/search_resource_manager.cc |
@@ -15,6 +15,19 @@ |
namespace app_list { |
+namespace { |
+ |
+scoped_ptr<SearchBoxModel::SpeechButtonProperty> CreateNewProperty() { |
+ ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); |
+ return make_scoped_ptr(new SearchBoxModel::SpeechButtonProperty( |
+ *bundle.GetImageSkiaNamed(IDR_OMNIBOX_MIC_SEARCH), |
+ l10n_util::GetStringUTF16(IDS_APP_LIST_HOTWORD_LISTENING), |
+ *bundle.GetImageSkiaNamed(IDR_APP_LIST_MIC_HOTWORD_OFF), |
+ l10n_util::GetStringUTF16(IDS_APP_LIST_START_SPEECH_RECOGNITION))); |
+} |
+ |
+} // namespace |
+ |
SearchResourceManager::SearchResourceManager(Profile* profile, |
SearchBoxModel* search_box, |
SpeechUIModel* speech_ui) |
@@ -25,17 +38,8 @@ SearchResourceManager::SearchResourceManager(Profile* profile, |
ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); |
search_box_->SetIcon(*bundle.GetImageSkiaNamed(IDR_OMNIBOX_SEARCH)); |
StartPageService* service = StartPageService::Get(profile); |
- if (service && service->GetSpeechRecognitionContents()) { |
- search_box_->SetSpeechRecognitionButton( |
- scoped_ptr<SearchBoxModel::SpeechButtonProperty>( |
- new SearchBoxModel::SpeechButtonProperty( |
- *bundle.GetImageSkiaNamed(IDR_OMNIBOX_MIC_SEARCH), |
- l10n_util::GetStringUTF16( |
- IDS_APP_LIST_HOTWORD_LISTENING), |
- *bundle.GetImageSkiaNamed(IDR_APP_LIST_MIC_HOTWORD_OFF), |
- l10n_util::GetStringUTF16( |
- IDS_APP_LIST_START_SPEECH_RECOGNITION)))); |
- } |
+ if (service && service->GetSpeechRecognitionContents()) |
+ search_box_->SetSpeechRecognitionButton(CreateNewProperty()); |
OnSpeechRecognitionStateChanged(speech_ui_->state()); |
} |
@@ -48,6 +52,10 @@ void SearchResourceManager::OnSpeechRecognitionStateChanged( |
search_box_->SetHintText(l10n_util::GetStringUTF16( |
(new_state == SPEECH_RECOGNITION_HOTWORD_LISTENING) ? |
IDS_SEARCH_BOX_HOTWORD_HINT : IDS_SEARCH_BOX_HINT)); |
+ scoped_ptr<SearchBoxModel::SpeechButtonProperty> button_prop; |
+ if (new_state != SPEECH_RECOGNITION_OFF) |
+ button_prop = CreateNewProperty(); |
+ search_box_->SetSpeechRecognitionButton(button_prop.Pass()); |
} |
} // namespace app_list |