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

Unified Diff: components/user_manager/user_image/default_user_images.cc

Issue 402133003: [cros, user_manager] Move default user images constants and helper functions out of src/chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: re-format 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/user_manager/user_image/default_user_images.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/user_manager/user_image/default_user_images.cc
diff --git a/components/user_manager/user_image/default_user_images.cc b/components/user_manager/user_image/default_user_images.cc
new file mode 100644
index 0000000000000000000000000000000000000000..35aabf233a6b6dde3967a48128352ad6b0c9a26d
--- /dev/null
+++ b/components/user_manager/user_image/default_user_images.cc
@@ -0,0 +1,258 @@
+// Copyright 2014 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 "components/user_manager/user_image/default_user_images.h"
+
+#include "base/basictypes.h"
+#include "base/logging.h"
+#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_piece.h"
+#include "base/strings/string_util.h"
+#include "base/strings/stringprintf.h"
+#include "base/sys_info.h"
+#include "grit/ui_chromeos_resources.h"
+#include "grit/ui_chromeos_strings.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/resource/resource_bundle.h"
+#include "ui/gfx/image/image_skia.h"
+
+namespace user_manager {
+
+namespace {
+
+const char kDefaultUrlPrefix[] = "chrome://theme/IDR_LOGIN_DEFAULT_USER_";
+const char kZeroDefaultUrl[] = "chrome://theme/IDR_LOGIN_DEFAULT_USER";
+
+// IDs of default user image descriptions.
+const int kDefaultImageDescriptions[] = {
+ 0, // No description for deprecated user image 0.
+ 0, // No description for deprecated user image 1.
+ 0, // No description for deprecated user image 2.
+ 0, // No description for deprecated user image 3.
+ 0, // No description for deprecated user image 4.
+ 0, // No description for deprecated user image 5.
+ 0, // No description for deprecated user image 6.
+ 0, // No description for deprecated user image 7.
+ 0, // No description for deprecated user image 8.
+ 0, // No description for deprecated user image 9.
+ 0, // No description for deprecated user image 10.
+ 0, // No description for deprecated user image 11.
+ 0, // No description for deprecated user image 12.
+ 0, // No description for deprecated user image 13.
+ 0, // No description for deprecated user image 14.
+ 0, // No description for deprecated user image 15.
+ 0, // No description for deprecated user image 16.
+ 0, // No description for deprecated user image 17.
+ 0, // No description for deprecated user image 18.
+ IDS_LOGIN_DEFAULT_USER_DESC_19,
+ IDS_LOGIN_DEFAULT_USER_DESC_20,
+ IDS_LOGIN_DEFAULT_USER_DESC_21,
+ IDS_LOGIN_DEFAULT_USER_DESC_22,
+ IDS_LOGIN_DEFAULT_USER_DESC_23,
+ IDS_LOGIN_DEFAULT_USER_DESC_24,
+ IDS_LOGIN_DEFAULT_USER_DESC_25,
+ IDS_LOGIN_DEFAULT_USER_DESC_26,
+ IDS_LOGIN_DEFAULT_USER_DESC_27,
+ IDS_LOGIN_DEFAULT_USER_DESC_28,
+ IDS_LOGIN_DEFAULT_USER_DESC_29,
+ IDS_LOGIN_DEFAULT_USER_DESC_30,
+ IDS_LOGIN_DEFAULT_USER_DESC_31,
+ IDS_LOGIN_DEFAULT_USER_DESC_32,
+};
+
+// Returns a string consisting of the prefix specified and the index of the
+// image if its valid.
+std::string GetDefaultImageString(int index, const std::string& prefix) {
+ if (index < 0 || index >= kDefaultImagesCount) {
+ DCHECK(!base::SysInfo::IsRunningOnChromeOS());
+ return std::string();
+ }
+ return base::StringPrintf("%s%d", prefix.c_str(), index);
+}
+
+// Returns true if the string specified consists of the prefix and one of
+// the default images indices. Returns the index of the image in |image_id|
+// variable.
+bool IsDefaultImageString(const std::string& s,
+ const std::string& prefix,
+ int* image_id) {
+ DCHECK(image_id);
+ if (!StartsWithASCII(s, prefix, true))
+ return false;
+
+ int image_index = -1;
+ if (base::StringToInt(base::StringPiece(s.begin() + prefix.length(), s.end()),
+ &image_index)) {
+ if (image_index < 0 || image_index >= kDefaultImagesCount)
+ return false;
+ *image_id = image_index;
+ return true;
+ }
+
+ return false;
+}
+} // namespace
+
+std::string GetDefaultImageUrl(int index) {
+ if (index == 0)
+ return kZeroDefaultUrl;
+ return GetDefaultImageString(index, kDefaultUrlPrefix);
+}
+
+bool IsDefaultImageUrl(const std::string& url, int* image_id) {
+ if (url == kZeroDefaultUrl) {
+ *image_id = 0;
+ return true;
+ }
+ return IsDefaultImageString(url, kDefaultUrlPrefix, image_id);
+}
+
+const gfx::ImageSkia& GetDefaultImage(int index) {
+ DCHECK(index >= 0 && index < kDefaultImagesCount);
+ return *ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
+ kDefaultImageResourceIDs[index]);
+}
+
+base::string16 GetDefaultImageDescription(int index) {
+ DCHECK(index >= 0 && index < kDefaultImagesCount);
+ int string_id = kDefaultImageDescriptions[index];
+ if (string_id)
+ return l10n_util::GetStringUTF16(string_id);
+ else
+ return base::string16();
+}
+
+// Resource IDs of default user images.
+const int kDefaultImageResourceIDs[] = {
+ IDR_LOGIN_DEFAULT_USER,
+ IDR_LOGIN_DEFAULT_USER_1,
+ IDR_LOGIN_DEFAULT_USER_2,
+ IDR_LOGIN_DEFAULT_USER_3,
+ IDR_LOGIN_DEFAULT_USER_4,
+ IDR_LOGIN_DEFAULT_USER_5,
+ IDR_LOGIN_DEFAULT_USER_6,
+ IDR_LOGIN_DEFAULT_USER_7,
+ IDR_LOGIN_DEFAULT_USER_8,
+ IDR_LOGIN_DEFAULT_USER_9,
+ IDR_LOGIN_DEFAULT_USER_10,
+ IDR_LOGIN_DEFAULT_USER_11,
+ IDR_LOGIN_DEFAULT_USER_12,
+ IDR_LOGIN_DEFAULT_USER_13,
+ IDR_LOGIN_DEFAULT_USER_14,
+ IDR_LOGIN_DEFAULT_USER_15,
+ IDR_LOGIN_DEFAULT_USER_16,
+ IDR_LOGIN_DEFAULT_USER_17,
+ IDR_LOGIN_DEFAULT_USER_18,
+ IDR_LOGIN_DEFAULT_USER_19,
+ IDR_LOGIN_DEFAULT_USER_20,
+ IDR_LOGIN_DEFAULT_USER_21,
+ IDR_LOGIN_DEFAULT_USER_22,
+ IDR_LOGIN_DEFAULT_USER_23,
+ IDR_LOGIN_DEFAULT_USER_24,
+ IDR_LOGIN_DEFAULT_USER_25,
+ IDR_LOGIN_DEFAULT_USER_26,
+ IDR_LOGIN_DEFAULT_USER_27,
+ IDR_LOGIN_DEFAULT_USER_28,
+ IDR_LOGIN_DEFAULT_USER_29,
+ IDR_LOGIN_DEFAULT_USER_30,
+ IDR_LOGIN_DEFAULT_USER_31,
+ IDR_LOGIN_DEFAULT_USER_32,
+};
+
+const int kDefaultImageAuthorIDs[] = {
+ IDS_LOGIN_DEFAULT_USER_AUTHOR,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_1,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_2,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_3,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_4,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_5,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_6,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_7,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_8,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_9,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_10,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_11,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_12,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_13,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_14,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_15,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_16,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_17,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_18,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_19,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_20,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_21,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_22,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_23,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_24,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_25,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_26,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_27,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_28,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_29,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_30,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_31,
+ IDS_LOGIN_DEFAULT_USER_AUTHOR_32,
+};
+
+const int kDefaultImageWebsiteIDs[] = {
+ IDS_LOGIN_DEFAULT_USER_WEBSITE,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_1,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_2,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_3,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_4,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_5,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_6,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_7,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_8,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_9,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_10,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_11,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_12,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_13,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_14,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_15,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_16,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_17,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_18,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_19,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_20,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_21,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_22,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_23,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_24,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_25,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_26,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_27,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_28,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_29,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_30,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_31,
+ IDS_LOGIN_DEFAULT_USER_WEBSITE_32,
+};
+
+const int kDefaultImagesCount = arraysize(kDefaultImageResourceIDs);
+
+const int kFirstDefaultImageIndex = 19;
+
+// The order and the values of these constants are important for histograms
+// of different Chrome OS versions to be merged smoothly.
+const int kHistogramImageFromCamera = 19;
+const int kHistogramImageFromFile = 20;
+const int kHistogramImageOld = 21;
+const int kHistogramImageFromProfile = 22;
+const int kHistogramVideoFromCamera = 23;
+const int kHistogramVideoFromFile = 24;
+const int kHistogramImagesCount = kDefaultImagesCount + 6;
+
+int GetDefaultImageHistogramValue(int index) {
+ DCHECK(index >= 0 && index < kDefaultImagesCount);
+ // Create a gap in histogram values for
+ // [kHistogramImageFromCamera..kHistogramImageFromProfile] block to fit.
+ if (index < kHistogramImageFromCamera)
+ return index;
+ return index + 6;
+}
+
+} // namespace user_manager
« no previous file with comments | « components/user_manager/user_image/default_user_images.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698