1 // Copyright 2013 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 "ui/app_list/search/history.h"
7 #include "base/strings/string_util.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "ui/app_list/search/history_data.h"
10 #include "ui/app_list/search/history_data_store.h"
11 #include "ui/app_list/search/tokenized_string.h"
17 // Normalize the given string by joining all its tokens with a space.
18 std::string
NormalizeString(const std::string
& utf8
) {
19 TokenizedString
tokenized(base::UTF8ToUTF16(utf8
));
20 return base::UTF16ToUTF8(JoinString(tokenized
.tokens(), ' '));
25 History::History(scoped_refptr
<HistoryDataStore
> store
)
26 : store_(store
), data_loaded_(false) {
27 const size_t kMaxQueryEntries
= 1000;
28 const size_t kMaxSecondaryQueries
= 5;
31 new HistoryData(store_
.get(), kMaxQueryEntries
, kMaxSecondaryQueries
));
32 data_
->AddObserver(this);
36 data_
->RemoveObserver(this);
39 bool History::IsReady() const {
43 void History::AddLaunchEvent(const std::string
& query
,
44 const std::string
& result_id
) {
46 data_
->Add(NormalizeString(query
), result_id
);
49 scoped_ptr
<KnownResults
> History::GetKnownResults(
50 const std::string
& query
) const {
52 return data_
->GetKnownResults(NormalizeString(query
)).Pass();
55 void History::OnHistoryDataLoadedFromStore() {
59 } // namespace app_list