Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/profiles/profile_avatar_icon_util.h" | 5 #include "chrome/browser/profiles/profile_avatar_icon_util.h" |
| 6 | 6 |
| 7 #include "base/files/file_util.h" | 7 #include "base/files/file_util.h" |
| 8 #include "base/format_macros.h" | 8 #include "base/format_macros.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 195 const SkColor kAvatarBubbleAccountsBackgroundColor = | 195 const SkColor kAvatarBubbleAccountsBackgroundColor = |
| 196 SkColorSetRGB(0xf3, 0xf3, 0xf3); | 196 SkColorSetRGB(0xf3, 0xf3, 0xf3); |
| 197 const SkColor kAvatarBubbleGaiaBackgroundColor = | 197 const SkColor kAvatarBubbleGaiaBackgroundColor = |
| 198 SkColorSetRGB(0xf5, 0xf5, 0xf5); | 198 SkColorSetRGB(0xf5, 0xf5, 0xf5); |
| 199 const SkColor kUserManagerBackgroundColor = SkColorSetRGB(0xee, 0xee, 0xee); | 199 const SkColor kUserManagerBackgroundColor = SkColorSetRGB(0xee, 0xee, 0xee); |
| 200 | 200 |
| 201 const char kDefaultUrlPrefix[] = "chrome://theme/IDR_PROFILE_AVATAR_"; | 201 const char kDefaultUrlPrefix[] = "chrome://theme/IDR_PROFILE_AVATAR_"; |
| 202 const char kGAIAPictureFileName[] = "Google Profile Picture.png"; | 202 const char kGAIAPictureFileName[] = "Google Profile Picture.png"; |
| 203 const char kHighResAvatarFolderName[] = "Avatars"; | 203 const char kHighResAvatarFolderName[] = "Avatars"; |
| 204 | 204 |
| 205 // This avatar does not exist on the server, the high res copy is in the build. | |
| 206 const char kNoHighResAvatar[] = "NothingToDownload"; | |
| 207 | |
| 208 // The size of the function-static kDefaultAvatarIconResources array below. | 205 // The size of the function-static kDefaultAvatarIconResources array below. |
| 209 const size_t kDefaultAvatarIconsCount = 27; | 206 const size_t kDefaultAvatarIconsCount = 27; |
| 210 | 207 |
| 211 // The first 8 icons are generic. | 208 // The first 8 icons are generic. |
| 212 const size_t kGenericAvatarIconsCount = 8; | 209 const size_t kGenericAvatarIconsCount = 8; |
| 213 | 210 |
| 214 // The avatar used as a placeholder (grey silhouette). | 211 // The avatar used as a placeholder (grey silhouette). |
| 215 const int kPlaceholderAvatarIcon = 26; | 212 const size_t kPlaceholderAvatarIcon = 26; |
| 216 | 213 |
| 217 gfx::Image GetSizedAvatarIcon(const gfx::Image& image, | 214 gfx::Image GetSizedAvatarIcon(const gfx::Image& image, |
| 218 bool is_rectangle, | 215 bool is_rectangle, |
| 219 int width, int height) { | 216 int width, int height) { |
| 220 if (!is_rectangle && image.Height() <= height) | 217 if (!is_rectangle && image.Height() <= height) |
| 221 return image; | 218 return image; |
| 222 | 219 |
| 223 gfx::Size size(width, height); | 220 gfx::Size size(width, height); |
| 224 | 221 |
| 225 // Source for a centered, sized icon. GAIA images get a border. | 222 // Source for a centered, sized icon. GAIA images get a border. |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 293 | 290 |
| 294 // Helper methods for accessing, transforming and drawing avatar icons. | 291 // Helper methods for accessing, transforming and drawing avatar icons. |
| 295 size_t GetDefaultAvatarIconCount() { | 292 size_t GetDefaultAvatarIconCount() { |
| 296 return kDefaultAvatarIconsCount; | 293 return kDefaultAvatarIconsCount; |
| 297 } | 294 } |
| 298 | 295 |
| 299 size_t GetGenericAvatarIconCount() { | 296 size_t GetGenericAvatarIconCount() { |
| 300 return kGenericAvatarIconsCount; | 297 return kGenericAvatarIconsCount; |
| 301 } | 298 } |
| 302 | 299 |
| 303 int GetPlaceholderAvatarIndex() { | 300 size_t GetPlaceholderAvatarIndex() { |
| 304 return kPlaceholderAvatarIcon; | 301 return kPlaceholderAvatarIcon; |
| 305 } | 302 } |
| 306 | 303 |
| 307 int GetPlaceholderAvatarIconResourceID() { | 304 int GetPlaceholderAvatarIconResourceID() { |
| 308 return IDR_PROFILE_AVATAR_PLACEHOLDER_LARGE; | 305 return IDR_PROFILE_AVATAR_PLACEHOLDER_LARGE; |
| 309 } | 306 } |
| 310 | 307 |
| 311 const IconResourceInfo* GetDefaultAvatarIconResourceInfo(size_t index) { | 308 const IconResourceInfo* GetDefaultAvatarIconResourceInfo(size_t index) { |
| 309 DCHECK(index < kDefaultAvatarIconsCount); | |
| 312 static const IconResourceInfo resource_info[kDefaultAvatarIconsCount] = { | 310 static const IconResourceInfo resource_info[kDefaultAvatarIconsCount] = { |
| 313 { IDR_PROFILE_AVATAR_0, "avatar_generic.png"}, | 311 {IDR_PROFILE_AVATAR_0, "avatar_generic.png"}, |
| 314 { IDR_PROFILE_AVATAR_1, "avatar_generic_aqua.png"}, | 312 {IDR_PROFILE_AVATAR_1, "avatar_generic_aqua.png"}, |
| 315 { IDR_PROFILE_AVATAR_2, "avatar_generic_blue.png"}, | 313 {IDR_PROFILE_AVATAR_2, "avatar_generic_blue.png"}, |
| 316 { IDR_PROFILE_AVATAR_3, "avatar_generic_green.png"}, | 314 {IDR_PROFILE_AVATAR_3, "avatar_generic_green.png"}, |
| 317 { IDR_PROFILE_AVATAR_4, "avatar_generic_orange.png"}, | 315 {IDR_PROFILE_AVATAR_4, "avatar_generic_orange.png"}, |
| 318 { IDR_PROFILE_AVATAR_5, "avatar_generic_purple.png"}, | 316 {IDR_PROFILE_AVATAR_5, "avatar_generic_purple.png"}, |
| 319 { IDR_PROFILE_AVATAR_6, "avatar_generic_red.png"}, | 317 {IDR_PROFILE_AVATAR_6, "avatar_generic_red.png"}, |
| 320 { IDR_PROFILE_AVATAR_7, "avatar_generic_yellow.png"}, | 318 {IDR_PROFILE_AVATAR_7, "avatar_generic_yellow.png"}, |
| 321 { IDR_PROFILE_AVATAR_8, "avatar_secret_agent.png"}, | 319 {IDR_PROFILE_AVATAR_8, "avatar_secret_agent.png"}, |
| 322 { IDR_PROFILE_AVATAR_9, "avatar_superhero.png"}, | 320 {IDR_PROFILE_AVATAR_9, "avatar_superhero.png"}, |
| 323 { IDR_PROFILE_AVATAR_10, "avatar_volley_ball.png"}, | 321 {IDR_PROFILE_AVATAR_10, "avatar_volley_ball.png"}, |
| 324 { IDR_PROFILE_AVATAR_11, "avatar_businessman.png"}, | 322 {IDR_PROFILE_AVATAR_11, "avatar_businessman.png"}, |
| 325 { IDR_PROFILE_AVATAR_12, "avatar_ninja.png"}, | 323 {IDR_PROFILE_AVATAR_12, "avatar_ninja.png"}, |
| 326 { IDR_PROFILE_AVATAR_13, "avatar_alien.png"}, | 324 {IDR_PROFILE_AVATAR_13, "avatar_alien.png"}, |
| 327 { IDR_PROFILE_AVATAR_14, "avatar_smiley.png"}, | 325 {IDR_PROFILE_AVATAR_14, "avatar_smiley.png"}, |
| 328 { IDR_PROFILE_AVATAR_15, "avatar_flower.png"}, | 326 {IDR_PROFILE_AVATAR_15, "avatar_flower.png"}, |
| 329 { IDR_PROFILE_AVATAR_16, "avatar_pizza.png"}, | 327 {IDR_PROFILE_AVATAR_16, "avatar_pizza.png"}, |
| 330 { IDR_PROFILE_AVATAR_17, "avatar_soccer.png"}, | 328 {IDR_PROFILE_AVATAR_17, "avatar_soccer.png"}, |
| 331 { IDR_PROFILE_AVATAR_18, "avatar_burger.png"}, | 329 {IDR_PROFILE_AVATAR_18, "avatar_burger.png"}, |
| 332 { IDR_PROFILE_AVATAR_19, "avatar_cat.png"}, | 330 {IDR_PROFILE_AVATAR_19, "avatar_cat.png"}, |
| 333 { IDR_PROFILE_AVATAR_20, "avatar_cupcake.png"}, | 331 {IDR_PROFILE_AVATAR_20, "avatar_cupcake.png"}, |
| 334 { IDR_PROFILE_AVATAR_21, "avatar_dog.png"}, | 332 {IDR_PROFILE_AVATAR_21, "avatar_dog.png"}, |
| 335 { IDR_PROFILE_AVATAR_22, "avatar_horse.png"}, | 333 {IDR_PROFILE_AVATAR_22, "avatar_horse.png"}, |
| 336 { IDR_PROFILE_AVATAR_23, "avatar_margarita.png"}, | 334 {IDR_PROFILE_AVATAR_23, "avatar_margarita.png"}, |
| 337 { IDR_PROFILE_AVATAR_24, "avatar_note.png"}, | 335 {IDR_PROFILE_AVATAR_24, "avatar_note.png"}, |
| 338 { IDR_PROFILE_AVATAR_25, "avatar_sun_cloud.png"}, | 336 {IDR_PROFILE_AVATAR_25, "avatar_sun_cloud.png"}, |
| 339 { IDR_PROFILE_AVATAR_26, kNoHighResAvatar}, | 337 {IDR_PROFILE_AVATAR_26, NULL}, |
| 340 }; | 338 }; |
| 341 return &resource_info[index]; | 339 return &resource_info[index]; |
| 342 } | 340 } |
| 343 | 341 |
| 344 int GetDefaultAvatarIconResourceIDAtIndex(size_t index) { | 342 int GetDefaultAvatarIconResourceIDAtIndex(size_t index) { |
| 345 DCHECK(IsDefaultAvatarIconIndex(index)); | 343 DCHECK(IsDefaultAvatarIconIndex(index)); |
| 346 return GetDefaultAvatarIconResourceInfo(index)->resource_id; | 344 return GetDefaultAvatarIconResourceInfo(index)->resource_id; |
| 347 } | 345 } |
| 348 | 346 |
| 349 const char* GetDefaultAvatarIconFileNameAtIndex(size_t index) { | 347 const char* GetDefaultAvatarIconFileNameAtIndex(size_t index) { |
| 350 DCHECK(index < kDefaultAvatarIconsCount); | 348 DCHECK(index < kDefaultAvatarIconsCount); |
| 349 DCHECK(index != kPlaceholderAvatarIcon); | |
|
Mike Lerman
2015/05/12 19:59:12
this method is also called from the ProfileAvatarD
emaxx
2015/05/13 12:08:16
Yes, that class uses this method, but the point is
| |
| 351 return GetDefaultAvatarIconResourceInfo(index)->filename; | 350 return GetDefaultAvatarIconResourceInfo(index)->filename; |
| 352 } | 351 } |
| 353 | 352 |
| 354 const char* GetNoHighResAvatarFileName() { | |
| 355 return kNoHighResAvatar; | |
| 356 } | |
| 357 | |
| 358 base::FilePath GetPathOfHighResAvatarAtIndex(size_t index) { | 353 base::FilePath GetPathOfHighResAvatarAtIndex(size_t index) { |
| 359 std::string file_name = GetDefaultAvatarIconResourceInfo(index)->filename; | 354 const char* file_name = GetDefaultAvatarIconFileNameAtIndex(index); |
| 360 base::FilePath user_data_dir; | 355 base::FilePath user_data_dir; |
| 361 PathService::Get(chrome::DIR_USER_DATA, &user_data_dir); | 356 CHECK(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)); |
| 362 return user_data_dir.AppendASCII( | 357 return user_data_dir.AppendASCII( |
| 363 kHighResAvatarFolderName).AppendASCII(file_name); | 358 kHighResAvatarFolderName).AppendASCII(file_name); |
| 364 } | 359 } |
| 365 | 360 |
| 366 std::string GetDefaultAvatarIconUrl(size_t index) { | 361 std::string GetDefaultAvatarIconUrl(size_t index) { |
| 367 DCHECK(IsDefaultAvatarIconIndex(index)); | 362 DCHECK(IsDefaultAvatarIconIndex(index)); |
| 368 return base::StringPrintf("%s%" PRIuS, kDefaultUrlPrefix, index); | 363 return base::StringPrintf("%s%" PRIuS, kDefaultUrlPrefix, index); |
| 369 } | 364 } |
| 370 | 365 |
| 371 bool IsDefaultAvatarIconIndex(size_t index) { | 366 bool IsDefaultAvatarIconIndex(size_t index) { |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 386 int_value >= static_cast<int>(kDefaultAvatarIconsCount)) | 381 int_value >= static_cast<int>(kDefaultAvatarIconsCount)) |
| 387 return false; | 382 return false; |
| 388 *icon_index = int_value; | 383 *icon_index = int_value; |
| 389 return true; | 384 return true; |
| 390 } | 385 } |
| 391 | 386 |
| 392 return false; | 387 return false; |
| 393 } | 388 } |
| 394 | 389 |
| 395 } // namespace profiles | 390 } // namespace profiles |
| OLD | NEW |