Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Unified Diff: athena/home/app_list_view_delegate.cc

Issue 640103002: Adds full-functional search results for Athena on Chrome. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix DEPS Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « athena/home/app_list_view_delegate.h ('k') | athena/home/home_card_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: athena/home/app_list_view_delegate.cc
diff --git a/athena/home/app_list_view_delegate.cc b/athena/home/app_list_view_delegate.cc
index 29ecb0574e4bc6d95041d912c240d46a7bc65050..bb1e0beb936a8029a3a1c82562eecf439772ef5a 100644
--- a/athena/home/app_list_view_delegate.cc
+++ b/athena/home/app_list_view_delegate.cc
@@ -8,6 +8,7 @@
#include <vector>
#include "athena/home/public/app_model_builder.h"
+#include "athena/home/public/search_controller_factory.h"
#include "athena/strings/grit/athena_strings.h"
#include "base/basictypes.h"
#include "base/bind.h"
@@ -16,6 +17,7 @@
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/app_list/app_list_model.h"
#include "ui/app_list/search_box_model.h"
+#include "ui/app_list/search_controller.h"
#include "ui/app_list/search_provider.h"
#include "ui/app_list/search_result.h"
#include "ui/app_list/speech_ui_model.h"
@@ -27,36 +29,21 @@
namespace athena {
-AppListViewDelegate::AppListViewDelegate(AppModelBuilder* model_builder)
+AppListViewDelegate::AppListViewDelegate(
+ AppModelBuilder* model_builder,
+ SearchControllerFactory* search_factory)
: model_(new app_list::AppListModel),
speech_ui_(new app_list::SpeechUIModel) {
model_builder->PopulateApps(model_.get());
model_->search_box()->SetHintText(
l10n_util::GetStringUTF16(IDS_ATHENA_SEARCH_BOX_HINT));
+ if (search_factory) {
+ search_controller_ =
+ search_factory->Create(model_->search_box(), model_->results());
+ }
}
AppListViewDelegate::~AppListViewDelegate() {
- for (size_t i = 0; i < search_providers_.size(); ++i)
- search_providers_[i]->set_result_changed_callback(base::Closure());
-}
-
-void AppListViewDelegate::RegisterSearchProvider(
- app_list::SearchProvider* search_provider) {
- // Right now we allow only one provider.
- // TODO(mukai): port app-list's mixer and remove this restriction.
- DCHECK(search_providers_.empty());
- search_provider->set_result_changed_callback(base::Bind(
- &AppListViewDelegate::SearchResultChanged, base::Unretained(this)));
- search_providers_.push_back(search_provider);
-}
-
-void AppListViewDelegate::SearchResultChanged() {
- // TODO(mukai): port app-list's Mixer to reorder the results properly.
- app_list::SearchProvider* search_provider = search_providers_[0];
- const app_list::SearchProvider::Results& results = search_provider->results();
- model_->results()->DeleteAll();
- for (size_t i = 0; i < results.size(); ++i)
- model_->results()->Add(results[i]->Duplicate().release());
}
bool AppListViewDelegate::ForceNativeDesktop() const {
@@ -82,26 +69,28 @@ void AppListViewDelegate::GetShortcutPathForApp(
}
void AppListViewDelegate::StartSearch() {
- for (size_t i = 0; i < search_providers_.size(); ++i)
- search_providers_[i]->Start(model_->search_box()->text());
+ if (search_controller_)
+ search_controller_->Start();
}
void AppListViewDelegate::StopSearch() {
- for (size_t i = 0; i < search_providers_.size(); ++i)
- search_providers_[i]->Stop();
+ if (search_controller_)
+ search_controller_->Stop();
}
void AppListViewDelegate::OpenSearchResult(app_list::SearchResult* result,
bool auto_launch,
int event_flags) {
- result->Open(event_flags);
+ if (search_controller_)
+ search_controller_->OpenResult(result, event_flags);
}
void AppListViewDelegate::InvokeSearchResultAction(
app_list::SearchResult* result,
int action_index,
int event_flags) {
- // TODO(mukai): implement this.
+ if (search_controller_)
+ search_controller_->InvokeResultAction(result, action_index, event_flags);
}
base::TimeDelta AppListViewDelegate::GetAutoLaunchTimeout() {
« no previous file with comments | « athena/home/app_list_view_delegate.h ('k') | athena/home/home_card_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698