1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/ui/app_list/search/search_resource_manager.h"
7 #include "chrome/browser/ui/app_list/start_page_service.h"
8 #include "grit/components_scaled_resources.h"
9 #include "grit/generated_resources.h"
10 #include "grit/theme_resources.h"
11 #include "ui/app_list/search_box_model.h"
12 #include "ui/app_list/speech_ui_model.h"
13 #include "ui/base/l10n/l10n_util.h"
14 #include "ui/base/resource/resource_bundle.h"
18 SearchResourceManager::SearchResourceManager(Profile* profile,
19 SearchBoxModel* search_box,
20 SpeechUIModel* speech_ui)
21 : search_box_(search_box),
22 speech_ui_(speech_ui) {
23 speech_ui_->AddObserver(this);
25 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
26 search_box_->SetIcon(*bundle.GetImageSkiaNamed(IDR_OMNIBOX_SEARCH));
27 StartPageService* service = StartPageService::Get(profile);
28 if (service && service->GetSpeechRecognitionContents()) {
29 search_box_->SetSpeechRecognitionButton(
30 scoped_ptr<SearchBoxModel::SpeechButtonProperty>(
31 new SearchBoxModel::SpeechButtonProperty(
32 *bundle.GetImageSkiaNamed(IDR_OMNIBOX_MIC_SEARCH),
33 l10n_util::GetStringUTF16(
34 IDS_APP_LIST_HOTWORD_LISTENING),
35 *bundle.GetImageSkiaNamed(IDR_APP_LIST_MIC_HOTWORD_OFF),
36 l10n_util::GetStringUTF16(
37 IDS_APP_LIST_START_SPEECH_RECOGNITION))));
39 OnSpeechRecognitionStateChanged(speech_ui_->state());
42 SearchResourceManager::~SearchResourceManager() {
43 speech_ui_->RemoveObserver(this);
46 void SearchResourceManager::OnSpeechRecognitionStateChanged(
47 SpeechRecognitionState new_state) {
48 search_box_->SetHintText(l10n_util::GetStringUTF16(
49 (new_state == SPEECH_RECOGNITION_HOTWORD_LISTENING) ?
50 IDS_SEARCH_BOX_HOTWORD_HINT : IDS_SEARCH_BOX_HINT));
53 } // namespace app_list