14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file.
44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#ifndef CHROME_BROWSER_UI_APP_LIST_SEARCH_PEOPLE_PERSON_H_
64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#define CHROME_BROWSER_UI_APP_LIST_SEARCH_PEOPLE_PERSON_H_
74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include <string>
94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "base/memory/scoped_ptr.h"
114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "url/gurl.h"
124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace base {
144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class DictionaryValue;
154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace app_list {
184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Person holds information about a search result retrieved from the People
204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Search Google webservice.
214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)struct Person {
224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // Parses the dictionary from the people search result and creates a person
234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // object.
244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  static scoped_ptr<Person> Create(const base::DictionaryValue& dict);
254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  Person();
274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  ~Person();
284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  scoped_ptr<Person> Duplicate();
304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // This is a unique id for this person. In the case of a result with an
324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // associated Google account, this will always be the same as the owner id.
334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // In case of non-Google results, this id is arbitrary but guaranteed to be
344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // unique for this person search result.
354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  std::string id;
364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // The Owner Id is a GAIA obfuscated id which can be used to identify a
384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // Google contact.
394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  std::string owner_id;
404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // Interaction rank is a number between 0.0-1.0 indicating how frequently
424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // you interact with the person.
434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  double interaction_rank;
444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  std::string display_name;
464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  std::string email;
474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  GURL image_url;
484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)};
504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}  // namespace app_list
524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
534e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#endif  // CHROME_BROWSER_UI_APP_LIST_SEARCH_PEOPLE_PERSON_H_
54