Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(208)

Side by Side Diff: trunk/src/components/user_manager/user_image/default_user_images.cc

Issue 408833004: Revert 284417 "Move default user profile images strings and reso..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "components/user_manager/user_image/default_user_images.h"
6
7 #include "base/basictypes.h"
8 #include "base/logging.h"
9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/string_piece.h"
11 #include "base/strings/string_util.h"
12 #include "base/strings/stringprintf.h"
13 #include "base/sys_info.h"
14 #include "grit/ui_chromeos_resources.h"
15 #include "grit/ui_chromeos_strings.h"
16 #include "ui/base/l10n/l10n_util.h"
17 #include "ui/base/resource/resource_bundle.h"
18 #include "ui/gfx/image/image_skia.h"
19
20 namespace user_manager {
21
22 namespace {
23
24 const char kDefaultUrlPrefix[] = "chrome://theme/IDR_LOGIN_DEFAULT_USER_";
25 const char kZeroDefaultUrl[] = "chrome://theme/IDR_LOGIN_DEFAULT_USER";
26
27 // IDs of default user image descriptions.
28 const int kDefaultImageDescriptions[] = {
29 0, // No description for deprecated user image 0.
30 0, // No description for deprecated user image 1.
31 0, // No description for deprecated user image 2.
32 0, // No description for deprecated user image 3.
33 0, // No description for deprecated user image 4.
34 0, // No description for deprecated user image 5.
35 0, // No description for deprecated user image 6.
36 0, // No description for deprecated user image 7.
37 0, // No description for deprecated user image 8.
38 0, // No description for deprecated user image 9.
39 0, // No description for deprecated user image 10.
40 0, // No description for deprecated user image 11.
41 0, // No description for deprecated user image 12.
42 0, // No description for deprecated user image 13.
43 0, // No description for deprecated user image 14.
44 0, // No description for deprecated user image 15.
45 0, // No description for deprecated user image 16.
46 0, // No description for deprecated user image 17.
47 0, // No description for deprecated user image 18.
48 IDS_LOGIN_DEFAULT_USER_DESC_19, IDS_LOGIN_DEFAULT_USER_DESC_20,
49 IDS_LOGIN_DEFAULT_USER_DESC_21, IDS_LOGIN_DEFAULT_USER_DESC_22,
50 IDS_LOGIN_DEFAULT_USER_DESC_23, IDS_LOGIN_DEFAULT_USER_DESC_24,
51 IDS_LOGIN_DEFAULT_USER_DESC_25, IDS_LOGIN_DEFAULT_USER_DESC_26,
52 IDS_LOGIN_DEFAULT_USER_DESC_27, IDS_LOGIN_DEFAULT_USER_DESC_28,
53 IDS_LOGIN_DEFAULT_USER_DESC_29, IDS_LOGIN_DEFAULT_USER_DESC_30,
54 IDS_LOGIN_DEFAULT_USER_DESC_31, IDS_LOGIN_DEFAULT_USER_DESC_32,
55 };
56
57 // Returns a string consisting of the prefix specified and the index of the
58 // image if its valid.
59 std::string GetDefaultImageString(int index, const std::string& prefix) {
60 if (index < 0 || index >= kDefaultImagesCount) {
61 DCHECK(!base::SysInfo::IsRunningOnChromeOS());
62 return std::string();
63 }
64 return base::StringPrintf("%s%d", prefix.c_str(), index);
65 }
66
67 // Returns true if the string specified consists of the prefix and one of
68 // the default images indices. Returns the index of the image in |image_id|
69 // variable.
70 bool IsDefaultImageString(const std::string& s,
71 const std::string& prefix,
72 int* image_id) {
73 DCHECK(image_id);
74 if (!StartsWithASCII(s, prefix, true))
75 return false;
76
77 int image_index = -1;
78 if (base::StringToInt(base::StringPiece(s.begin() + prefix.length(), s.end()),
79 &image_index)) {
80 if (image_index < 0 || image_index >= kDefaultImagesCount)
81 return false;
82 *image_id = image_index;
83 return true;
84 }
85
86 return false;
87 }
88 } // namespace
89
90 std::string GetDefaultImageUrl(int index) {
91 if (index == 0)
92 return kZeroDefaultUrl;
93 return GetDefaultImageString(index, kDefaultUrlPrefix);
94 }
95
96 bool IsDefaultImageUrl(const std::string& url, int* image_id) {
97 if (url == kZeroDefaultUrl) {
98 *image_id = 0;
99 return true;
100 }
101 return IsDefaultImageString(url, kDefaultUrlPrefix, image_id);
102 }
103
104 const gfx::ImageSkia& GetDefaultImage(int index) {
105 DCHECK(index >= 0 && index < kDefaultImagesCount);
106 return *ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
107 kDefaultImageResourceIDs[index]);
108 }
109
110 base::string16 GetDefaultImageDescription(int index) {
111 DCHECK(index >= 0 && index < kDefaultImagesCount);
112 int string_id = kDefaultImageDescriptions[index];
113 if (string_id)
114 return l10n_util::GetStringUTF16(string_id);
115 else
116 return base::string16();
117 }
118
119 // Resource IDs of default user images.
120 const int kDefaultImageResourceIDs[] = {
121 IDR_LOGIN_DEFAULT_USER, IDR_LOGIN_DEFAULT_USER_1,
122 IDR_LOGIN_DEFAULT_USER_2, IDR_LOGIN_DEFAULT_USER_3,
123 IDR_LOGIN_DEFAULT_USER_4, IDR_LOGIN_DEFAULT_USER_5,
124 IDR_LOGIN_DEFAULT_USER_6, IDR_LOGIN_DEFAULT_USER_7,
125 IDR_LOGIN_DEFAULT_USER_8, IDR_LOGIN_DEFAULT_USER_9,
126 IDR_LOGIN_DEFAULT_USER_10, IDR_LOGIN_DEFAULT_USER_11,
127 IDR_LOGIN_DEFAULT_USER_12, IDR_LOGIN_DEFAULT_USER_13,
128 IDR_LOGIN_DEFAULT_USER_14, IDR_LOGIN_DEFAULT_USER_15,
129 IDR_LOGIN_DEFAULT_USER_16, IDR_LOGIN_DEFAULT_USER_17,
130 IDR_LOGIN_DEFAULT_USER_18, IDR_LOGIN_DEFAULT_USER_19,
131 IDR_LOGIN_DEFAULT_USER_20, IDR_LOGIN_DEFAULT_USER_21,
132 IDR_LOGIN_DEFAULT_USER_22, IDR_LOGIN_DEFAULT_USER_23,
133 IDR_LOGIN_DEFAULT_USER_24, IDR_LOGIN_DEFAULT_USER_25,
134 IDR_LOGIN_DEFAULT_USER_26, IDR_LOGIN_DEFAULT_USER_27,
135 IDR_LOGIN_DEFAULT_USER_28, IDR_LOGIN_DEFAULT_USER_29,
136 IDR_LOGIN_DEFAULT_USER_30, IDR_LOGIN_DEFAULT_USER_31,
137 IDR_LOGIN_DEFAULT_USER_32,
138 };
139
140 const int kDefaultImageAuthorIDs[] = {
141 IDS_LOGIN_DEFAULT_USER_AUTHOR, IDS_LOGIN_DEFAULT_USER_AUTHOR_1,
142 IDS_LOGIN_DEFAULT_USER_AUTHOR_2, IDS_LOGIN_DEFAULT_USER_AUTHOR_3,
143 IDS_LOGIN_DEFAULT_USER_AUTHOR_4, IDS_LOGIN_DEFAULT_USER_AUTHOR_5,
144 IDS_LOGIN_DEFAULT_USER_AUTHOR_6, IDS_LOGIN_DEFAULT_USER_AUTHOR_7,
145 IDS_LOGIN_DEFAULT_USER_AUTHOR_8, IDS_LOGIN_DEFAULT_USER_AUTHOR_9,
146 IDS_LOGIN_DEFAULT_USER_AUTHOR_10, IDS_LOGIN_DEFAULT_USER_AUTHOR_11,
147 IDS_LOGIN_DEFAULT_USER_AUTHOR_12, IDS_LOGIN_DEFAULT_USER_AUTHOR_13,
148 IDS_LOGIN_DEFAULT_USER_AUTHOR_14, IDS_LOGIN_DEFAULT_USER_AUTHOR_15,
149 IDS_LOGIN_DEFAULT_USER_AUTHOR_16, IDS_LOGIN_DEFAULT_USER_AUTHOR_17,
150 IDS_LOGIN_DEFAULT_USER_AUTHOR_18, IDS_LOGIN_DEFAULT_USER_AUTHOR_19,
151 IDS_LOGIN_DEFAULT_USER_AUTHOR_20, IDS_LOGIN_DEFAULT_USER_AUTHOR_21,
152 IDS_LOGIN_DEFAULT_USER_AUTHOR_22, IDS_LOGIN_DEFAULT_USER_AUTHOR_23,
153 IDS_LOGIN_DEFAULT_USER_AUTHOR_24, IDS_LOGIN_DEFAULT_USER_AUTHOR_25,
154 IDS_LOGIN_DEFAULT_USER_AUTHOR_26, IDS_LOGIN_DEFAULT_USER_AUTHOR_27,
155 IDS_LOGIN_DEFAULT_USER_AUTHOR_28, IDS_LOGIN_DEFAULT_USER_AUTHOR_29,
156 IDS_LOGIN_DEFAULT_USER_AUTHOR_30, IDS_LOGIN_DEFAULT_USER_AUTHOR_31,
157 IDS_LOGIN_DEFAULT_USER_AUTHOR_32,
158 };
159
160 const int kDefaultImageWebsiteIDs[] = {
161 IDS_LOGIN_DEFAULT_USER_WEBSITE, IDS_LOGIN_DEFAULT_USER_WEBSITE_1,
162 IDS_LOGIN_DEFAULT_USER_WEBSITE_2, IDS_LOGIN_DEFAULT_USER_WEBSITE_3,
163 IDS_LOGIN_DEFAULT_USER_WEBSITE_4, IDS_LOGIN_DEFAULT_USER_WEBSITE_5,
164 IDS_LOGIN_DEFAULT_USER_WEBSITE_6, IDS_LOGIN_DEFAULT_USER_WEBSITE_7,
165 IDS_LOGIN_DEFAULT_USER_WEBSITE_8, IDS_LOGIN_DEFAULT_USER_WEBSITE_9,
166 IDS_LOGIN_DEFAULT_USER_WEBSITE_10, IDS_LOGIN_DEFAULT_USER_WEBSITE_11,
167 IDS_LOGIN_DEFAULT_USER_WEBSITE_12, IDS_LOGIN_DEFAULT_USER_WEBSITE_13,
168 IDS_LOGIN_DEFAULT_USER_WEBSITE_14, IDS_LOGIN_DEFAULT_USER_WEBSITE_15,
169 IDS_LOGIN_DEFAULT_USER_WEBSITE_16, IDS_LOGIN_DEFAULT_USER_WEBSITE_17,
170 IDS_LOGIN_DEFAULT_USER_WEBSITE_18, IDS_LOGIN_DEFAULT_USER_WEBSITE_19,
171 IDS_LOGIN_DEFAULT_USER_WEBSITE_20, IDS_LOGIN_DEFAULT_USER_WEBSITE_21,
172 IDS_LOGIN_DEFAULT_USER_WEBSITE_22, IDS_LOGIN_DEFAULT_USER_WEBSITE_23,
173 IDS_LOGIN_DEFAULT_USER_WEBSITE_24, IDS_LOGIN_DEFAULT_USER_WEBSITE_25,
174 IDS_LOGIN_DEFAULT_USER_WEBSITE_26, IDS_LOGIN_DEFAULT_USER_WEBSITE_27,
175 IDS_LOGIN_DEFAULT_USER_WEBSITE_28, IDS_LOGIN_DEFAULT_USER_WEBSITE_29,
176 IDS_LOGIN_DEFAULT_USER_WEBSITE_30, IDS_LOGIN_DEFAULT_USER_WEBSITE_31,
177 IDS_LOGIN_DEFAULT_USER_WEBSITE_32,
178 };
179
180 const int kDefaultImagesCount = arraysize(kDefaultImageResourceIDs);
181
182 const int kFirstDefaultImageIndex = 19;
183
184 // The order and the values of these constants are important for histograms
185 // of different Chrome OS versions to be merged smoothly.
186 const int kHistogramImageFromCamera = 19;
187 const int kHistogramImageFromFile = 20;
188 const int kHistogramImageOld = 21;
189 const int kHistogramImageFromProfile = 22;
190 const int kHistogramVideoFromCamera = 23;
191 const int kHistogramVideoFromFile = 24;
192 const int kHistogramImagesCount = kDefaultImagesCount + 6;
193
194 int GetDefaultImageHistogramValue(int index) {
195 DCHECK(index >= 0 && index < kDefaultImagesCount);
196 // Create a gap in histogram values for
197 // [kHistogramImageFromCamera..kHistogramImageFromProfile] block to fit.
198 if (index < kHistogramImageFromCamera)
199 return index;
200 return index + 6;
201 }
202
203 } // namespace user_manager
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698