| Index: chrome/browser/ui/app_list/search/arc/arc_playstore_search_provider.cc
|
| diff --git a/chrome/browser/ui/app_list/search/arc/arc_playstore_search_provider.cc b/chrome/browser/ui/app_list/search/arc/arc_playstore_search_provider.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0c3c0275478334045a8c581fe1530215ad90099d
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/app_list/search/arc/arc_playstore_search_provider.cc
|
| @@ -0,0 +1,58 @@
|
| +// Copyright 2017 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/browser/ui/app_list/search/arc/arc_playstore_search_provider.h"
|
| +
|
| +#include <utility>
|
| +
|
| +#include "base/strings/utf_string_conversions.h"
|
| +#include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
|
| +#include "chrome/browser/ui/app_list/search/arc/arc_playstore_search_result.h"
|
| +#include "components/arc/arc_bridge_service.h"
|
| +#include "components/arc/arc_service_manager.h"
|
| +
|
| +namespace app_list {
|
| +
|
| +ArcPlayStoreSearchProvider::ArcPlayStoreSearchProvider(
|
| + int max_results,
|
| + Profile* profile,
|
| + AppListControllerDelegate* list_controller)
|
| + : max_results_(max_results),
|
| + profile_(profile),
|
| + list_controller_(list_controller),
|
| + weak_ptr_factory_(this) {}
|
| +
|
| +ArcPlayStoreSearchProvider::~ArcPlayStoreSearchProvider() = default;
|
| +
|
| +void ArcPlayStoreSearchProvider::Start(bool is_voice_query,
|
| + const base::string16& query) {
|
| + // TODO(crbug.com/736027): should search for voice?
|
| + arc::mojom::AppInstance* app_instance =
|
| + arc::ArcServiceManager::Get()
|
| + ? ARC_GET_INSTANCE_FOR_METHOD(
|
| + arc::ArcServiceManager::Get()->arc_bridge_service()->app(),
|
| + GetRecentAndSuggestedAppsFromPlayStore)
|
| + : nullptr;
|
| +
|
| + if (app_instance == nullptr)
|
| + return;
|
| +
|
| + ClearResults();
|
| + app_instance->GetRecentAndSuggestedAppsFromPlayStore(
|
| + UTF16ToUTF8(query), max_results_,
|
| + base::Bind(&ArcPlayStoreSearchProvider::OnResults,
|
| + weak_ptr_factory_.GetWeakPtr()));
|
| +}
|
| +
|
| +void ArcPlayStoreSearchProvider::Stop() {}
|
| +
|
| +void ArcPlayStoreSearchProvider::OnResults(
|
| + std::vector<arc::mojom::AppDiscoveryResultPtr> results) {
|
| + for (auto& result : results) {
|
| + Add(base::MakeUnique<ArcPlayStoreSearchResult>(std::move(result), profile_,
|
| + list_controller_));
|
| + }
|
| +}
|
| +
|
| +} // namespace app_list
|
|
|