Chromium Code Reviews| Index: chrome/browser/ui/app_list/search/people/people_result.cc |
| diff --git a/chrome/browser/ui/app_list/search/people/people_result.cc b/chrome/browser/ui/app_list/search/people/people_result.cc |
| deleted file mode 100644 |
| index 9bfb791b1f47e56acac96854b199c1e4206f46ad..0000000000000000000000000000000000000000 |
| --- a/chrome/browser/ui/app_list/search/people/people_result.cc |
| +++ /dev/null |
| @@ -1,194 +0,0 @@ |
| -// Copyright 2013 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/people/people_result.h" |
| - |
| -#include <stddef.h> |
| -#include <utility> |
| -#include <vector> |
| - |
| -#include "base/bind.h" |
| -#include "base/memory/ref_counted.h" |
| -#include "base/strings/utf_string_conversions.h" |
| -#include "chrome/browser/profiles/profile.h" |
| -#include "chrome/browser/signin/profile_oauth2_token_service_factory.h" |
| -#include "chrome/browser/signin/signin_manager_factory.h" |
| -#include "chrome/browser/ui/app_list/app_list_controller_delegate.h" |
| -#include "chrome/browser/ui/app_list/search/common/url_icon_source.h" |
| -#include "chrome/browser/ui/app_list/search/people/person.h" |
| -#include "chrome/browser/ui/app_list/search/search_util.h" |
| -#include "chrome/common/extensions/api/hangouts_private.h" |
| -#include "chrome/grit/generated_resources.h" |
| -#include "components/signin/core/browser/profile_oauth2_token_service.h" |
| -#include "components/signin/core/browser/signin_manager.h" |
| -#include "content/public/browser/user_metrics.h" |
| -#include "extensions/browser/event_router.h" |
| -#include "grit/theme_resources.h" |
| -#include "ui/base/l10n/l10n_util.h" |
| -#include "ui/base/resource/resource_bundle.h" |
| - |
| -namespace OnHangoutRequested = |
| - extensions::api::hangouts_private::OnHangoutRequested; |
| - |
| -using extensions::api::hangouts_private::User; |
| -using extensions::api::hangouts_private::HangoutRequest; |
| - |
| -namespace { |
| - |
| -const char kImageSizePath[] = "s64-p/"; |
| -const char kEmailUrlPrefix[] = "mailto:"; |
| - |
| -// Add a query parameter to specify the size to fetch the image in. The |
| -// original profile image can be of an arbitrary size, we ask the server to |
| -// crop it to a square 64x64 using its smart cropping algorithm. |
| -GURL GetImageUrl(const GURL& url) { |
| - std::string image_filename = url.ExtractFileName(); |
| - if (image_filename.empty()) |
| - return url; |
| - |
| - return url.Resolve(kImageSizePath + image_filename); |
| -} |
| - |
| -} // namespace |
| - |
| -namespace app_list { |
| - |
| -PeopleResult::PeopleResult(Profile* profile, |
| - AppListControllerDelegate* controller, |
| - std::unique_ptr<Person> person) |
| - : profile_(profile), |
| - controller_(controller), |
| - person_(std::move(person)), |
| - weak_factory_(this) { |
| - set_id(person_->id); |
| - set_title(base::UTF8ToUTF16(person_->display_name)); |
| - set_relevance(person_->interaction_rank); |
| - set_details(base::UTF8ToUTF16(person_->email)); |
| - |
| - RefreshHangoutsExtensionId(); |
| - SetDefaultActions(); |
| - |
| - int icon_size = GetPreferredIconDimension(); |
| - image_ = gfx::ImageSkia( |
| - new UrlIconSource( |
| - base::Bind(&PeopleResult::OnIconLoaded, weak_factory_.GetWeakPtr()), |
| - profile_->GetRequestContext(), |
| - GetImageUrl(person_->image_url), |
| - icon_size, |
| - IDR_PROFILE_PICTURE_LOADING), |
| - gfx::Size(icon_size, icon_size)); |
| - SetIcon(image_); |
| -} |
| - |
| -PeopleResult::~PeopleResult() { |
| -} |
| - |
| -void PeopleResult::Open(int event_flags) { |
| - RecordHistogram(SEARCH_PEOPLE_SEARCH_RESULT); |
|
stevenjb
2016/05/02 20:37:49
This enum value can probably also be removed.
|
| - |
| - // Action 0 will always be our default action. |
| - InvokeAction(0, event_flags); |
| -} |
| - |
| -void PeopleResult::InvokeAction(int action_index, int event_flags) { |
| - if (hangouts_extension_id_.empty()) { |
| - // If the hangouts app is not available, the only option we are showing |
| - // to the user is 'Send Email'. |
| - SendEmail(); |
| - } else { |
| - switch (action_index) { |
| - case 0: |
| - OpenChat(); |
| - break; |
| - case 1: |
| - SendEmail(); |
| - break; |
| - default: |
| - LOG(ERROR) << "Invalid people search action: " << action_index; |
| - } |
| - } |
| -} |
| - |
| -std::unique_ptr<SearchResult> PeopleResult::Duplicate() const { |
| - return std::unique_ptr<SearchResult>( |
| - new PeopleResult(profile_, controller_, person_->Duplicate())); |
| -} |
| - |
| -void PeopleResult::OnIconLoaded() { |
| - // Remove the existing image reps since the icon data is loaded and they |
| - // need to be re-created. |
| - const std::vector<gfx::ImageSkiaRep>& image_reps = image_.image_reps(); |
| - for (size_t i = 0; i < image_reps.size(); ++i) |
| - image_.RemoveRepresentation(image_reps[i].scale()); |
| - |
| - SetIcon(image_); |
| -} |
| - |
| -void PeopleResult::SetDefaultActions() { |
| - Actions actions; |
| - |
| - ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); |
| - if (!hangouts_extension_id_.empty()) { |
| - actions.push_back(Action( |
| - *bundle.GetImageSkiaNamed(IDR_PEOPLE_SEARCH_ACTION_CHAT), |
| - *bundle.GetImageSkiaNamed(IDR_PEOPLE_SEARCH_ACTION_CHAT_HOVER), |
| - *bundle.GetImageSkiaNamed(IDR_PEOPLE_SEARCH_ACTION_CHAT_PRESSED), |
| - l10n_util::GetStringUTF16(IDS_PEOPLE_SEARCH_ACTION_CHAT_TOOLTIP))); |
| - } |
| - actions.push_back(Action( |
| - *bundle.GetImageSkiaNamed(IDR_PEOPLE_SEARCH_ACTION_EMAIL), |
| - *bundle.GetImageSkiaNamed(IDR_PEOPLE_SEARCH_ACTION_EMAIL_HOVER), |
| - *bundle.GetImageSkiaNamed(IDR_PEOPLE_SEARCH_ACTION_EMAIL_PRESSED), |
| - l10n_util::GetStringUTF16(IDS_PEOPLE_SEARCH_ACTION_EMAIL_TOOLTIP))); |
| - SetActions(actions); |
| -} |
| - |
| -void PeopleResult::OpenChat() { |
| - HangoutRequest request; |
| - |
| - request.type = extensions::api::hangouts_private::HANGOUT_TYPE_CHAT; |
| - |
| - // from: the user this chat request is originating from. |
| - SigninManagerBase* signin_manager = |
| - SigninManagerFactory::GetInstance()->GetForProfile(profile_); |
| - DCHECK(signin_manager); |
| - request.from = signin_manager->GetAuthenticatedAccountInfo().email; |
| - |
| - // to: list of users with whom to start this hangout is with. |
| - User target; |
| - target.id = person_->owner_id; |
| - request.to.push_back(std::move(target)); |
| - |
| - std::unique_ptr<extensions::Event> event(new extensions::Event( |
| - extensions::events::HANGOUTS_PRIVATE_ON_HANGOUT_REQUESTED, |
| - OnHangoutRequested::kEventName, OnHangoutRequested::Create(request))); |
| - |
| - // TODO(rkc): Change this once we remove the hangoutsPrivate API. |
| - // See crbug.com/306672 |
| - extensions::EventRouter::Get(profile_) |
| - ->DispatchEventToExtension(hangouts_extension_id_, std::move(event)); |
| - |
| - content::RecordAction(base::UserMetricsAction("PeopleSearch_OpenChat")); |
|
xiyuan
2016/05/02 21:26:01
And update this in tools/metrics/actions/actions.x
|
| -} |
| - |
| -void PeopleResult::SendEmail() { |
| - controller_->OpenURL(profile_, |
| - GURL(kEmailUrlPrefix + person_->email), |
| - ui::PAGE_TRANSITION_LINK, |
| - NEW_FOREGROUND_TAB); |
| - content::RecordAction(base::UserMetricsAction("PeopleSearch_SendEmail")); |
| -} |
| - |
| -void PeopleResult::RefreshHangoutsExtensionId() { |
| - for (const char* id : extension_misc::kHangoutsExtensionIds) { |
| - if (extensions::EventRouter::Get(profile_) |
| - ->ExtensionHasEventListener(id, OnHangoutRequested::kEventName)) { |
| - hangouts_extension_id_ = id; |
| - return; |
| - } |
| - } |
| - hangouts_extension_id_.clear(); |
| -} |
| - |
| -} // namespace app_list |