| // Copyright 2018 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_app_reinstall_app_result.h" |
| |
| #include <utility> |
| |
| #include "base/metrics/user_metrics.h" |
| #include "base/metrics/user_metrics_action.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "chrome/browser/ui/app_list/arc/arc_app_utils.h" |
| |
| namespace app_list { |
| |
| namespace { |
| constexpr char kPlayStoreAppUrlPrefix[] = |
| "https://play.google.com/store/apps/details?id="; |
| |
| // We choose a default app reinstallation relevance; This ranks app reinstall |
| // app result as a top result typically. |
| constexpr float kAppReinstallRelevance = 0.7; |
| |
| } // namespace |
| |
| ArcAppReinstallAppResult::ArcAppReinstallAppResult( |
| const arc::mojom::AppReinstallCandidatePtr& mojom_data, |
| const gfx::ImageSkia& skia_icon, |
| bool is_recommendation) { |
| ash::mojom::SearchResultMetadataPtr metadata = {base::in_place}; |
| set_id(kPlayStoreAppUrlPrefix + mojom_data->package_name); |
| SetResultType(ash::SearchResultType::kPlayStoreApp); |
| SetTitle(base::UTF8ToUTF16(mojom_data->title)); |
| SetDetails(base::UTF8ToUTF16(metadata->id)); |
| SetDisplayType(is_recommendation |
| ? ash::SearchResultDisplayType::kRecommendation |
| : ash::SearchResultDisplayType::kTile); |
| set_relevance(kAppReinstallRelevance); |
| |
| SetIcon(skia_icon); |
| SetChipIcon(skia_icon); |
| |
| if (mojom_data->star_rating != 0.0f) |
| SetRating(mojom_data->star_rating); |
| } |
| |
| ArcAppReinstallAppResult::~ArcAppReinstallAppResult() = default; |
| |
| void ArcAppReinstallAppResult::Open(int /*event_flags*/) { |
| RecordAction(base::UserMetricsAction("ArcAppReinstall_Clicked")); |
| arc::LaunchPlayStoreWithUrl(id()); |
| } |
| |
| } // namespace app_list |