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

Side by Side Diff: chrome/browser/ui/webui/options/managed_user_import_handler.cc

Issue 23454020: Update the 'managed user import' overlay to show an avatar selection grid (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@show_synced_avatars_in_import_overlay
Patch Set: rebase Created 7 years, 3 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/ui/webui/options/managed_user_import_handler.h" 5 #include "chrome/browser/ui/webui/options/managed_user_import_handler.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "chrome/browser/browser_process.h" 12 #include "chrome/browser/browser_process.h"
13 #include "chrome/browser/managed_mode/managed_user_sync_service.h" 13 #include "chrome/browser/managed_mode/managed_user_sync_service.h"
14 #include "chrome/browser/managed_mode/managed_user_sync_service_factory.h" 14 #include "chrome/browser/managed_mode/managed_user_sync_service_factory.h"
15 #include "chrome/browser/profiles/profile.h" 15 #include "chrome/browser/profiles/profile.h"
16 #include "chrome/browser/profiles/profile_info_cache.h" 16 #include "chrome/browser/profiles/profile_info_cache.h"
17 #include "chrome/browser/profiles/profile_manager.h" 17 #include "chrome/browser/profiles/profile_manager.h"
18 #include "chrome/common/pref_names.h" 18 #include "chrome/common/pref_names.h"
19 #include "content/public/browser/web_ui.h" 19 #include "content/public/browser/web_ui.h"
20 #include "grit/generated_resources.h" 20 #include "grit/generated_resources.h"
21 21
22 namespace {
23
24 scoped_ptr<base::ListValue> GetAvatarIcons() {
25 scoped_ptr<base::ListValue> avatar_icons(new base::ListValue);
26 for (size_t i = 0; i < ProfileInfoCache::GetDefaultAvatarIconCount(); ++i) {
27 std::string avatar_url = ProfileInfoCache::GetDefaultAvatarIconUrl(i);
28 avatar_icons->Append(new base::StringValue(avatar_url));
29 }
30
31 return avatar_icons.Pass();
32 }
33
34 } // namespace
35
22 namespace options { 36 namespace options {
23 37
24 ManagedUserImportHandler::ManagedUserImportHandler() {} 38 ManagedUserImportHandler::ManagedUserImportHandler() {}
25 39
26 ManagedUserImportHandler::~ManagedUserImportHandler() {} 40 ManagedUserImportHandler::~ManagedUserImportHandler() {}
27 41
28 void ManagedUserImportHandler::GetLocalizedValues( 42 void ManagedUserImportHandler::GetLocalizedValues(
29 base::DictionaryValue* localized_strings) { 43 base::DictionaryValue* localized_strings) {
30 DCHECK(localized_strings); 44 DCHECK(localized_strings);
31 45
32 static OptionsStringResource resources[] = { 46 static OptionsStringResource resources[] = {
47 { "managedUserImportTitle", IDS_IMPORT_EXISTING_MANAGED_USER_TITLE },
33 { "managedUserImportText", IDS_IMPORT_EXISTING_MANAGED_USER_TEXT }, 48 { "managedUserImportText", IDS_IMPORT_EXISTING_MANAGED_USER_TEXT },
34 { "createNewUserLink", IDS_CREATE_NEW_USER_LINK }, 49 { "createNewUserLink", IDS_CREATE_NEW_USER_LINK },
35 { "managedUserImportOk", IDS_IMPORT_EXISTING_MANAGED_USER_OK }, 50 { "managedUserImportOk", IDS_IMPORT_EXISTING_MANAGED_USER_OK },
36 { "managedUserAlreadyOnThisDevice", 51 { "managedUserAlreadyOnThisDevice",
37 IDS_MANAGED_USER_ALREADY_ON_THIS_DEVICE }, 52 IDS_MANAGED_USER_ALREADY_ON_THIS_DEVICE },
38 { "noExistingManagedUsers", IDS_MANAGED_USER_NO_EXISTING_ERROR }, 53 { "noExistingManagedUsers", IDS_MANAGED_USER_NO_EXISTING_ERROR },
54 { "managedUserSelectAvatarTitle", IDS_MANAGED_USER_SELECT_AVATAR_TITLE },
55 { "managedUserSelectAvatarText", IDS_MANAGED_USER_SELECT_AVATAR_TEXT },
56 { "managedUserSelectAvatarOk", IDS_MANAGED_USER_SELECT_AVATAR_OK },
39 }; 57 };
40 58
41 RegisterStrings(localized_strings, resources, arraysize(resources)); 59 RegisterStrings(localized_strings, resources, arraysize(resources));
42 RegisterTitle(localized_strings, "managedUserImport", 60 localized_strings->Set("avatarIcons", GetAvatarIcons().release());
43 IDS_IMPORT_EXISTING_MANAGED_USER_TITLE);
44 } 61 }
45 62
46 void ManagedUserImportHandler::RegisterMessages() { 63 void ManagedUserImportHandler::RegisterMessages() {
47 web_ui()->RegisterMessageCallback("requestExistingManagedUsers", 64 web_ui()->RegisterMessageCallback("requestExistingManagedUsers",
48 base::Bind(&ManagedUserImportHandler::RequestExistingManagedUsers, 65 base::Bind(&ManagedUserImportHandler::RequestExistingManagedUsers,
49 base::Unretained(this))); 66 base::Unretained(this)));
50 } 67 }
51 68
52 void ManagedUserImportHandler::RequestExistingManagedUsers( 69 void ManagedUserImportHandler::RequestExistingManagedUsers(
53 const ListValue* args) { 70 const ListValue* args) {
(...skipping 19 matching lines...) Expand all
73 std::string avatar_str; 90 std::string avatar_str;
74 value->GetString(ManagedUserSyncService::kChromeAvatar, &avatar_str); 91 value->GetString(ManagedUserSyncService::kChromeAvatar, &avatar_str);
75 92
76 DictionaryValue* managed_user = new DictionaryValue; 93 DictionaryValue* managed_user = new DictionaryValue;
77 managed_user->SetString("id", it.key()); 94 managed_user->SetString("id", it.key());
78 managed_user->SetString("name", name); 95 managed_user->SetString("name", name);
79 96
80 int avatar_index = ManagedUserSyncService::kNoAvatar; 97 int avatar_index = ManagedUserSyncService::kNoAvatar;
81 success = ManagedUserSyncService::GetAvatarIndex(avatar_str, &avatar_index); 98 success = ManagedUserSyncService::GetAvatarIndex(avatar_str, &avatar_index);
82 DCHECK(success); 99 DCHECK(success);
100 managed_user->SetBoolean("needAvatar", avatar_index < 0);
83 101
84 // TODO(ibraaaa): When we have an image indicating that this user 102 // TODO(ibraaaa): When we have an image indicating that this user
85 // has no synced avatar then change this to use it. 103 // has no synced avatar then change this to use it.
86 avatar_index = 104 avatar_index =
87 avatar_index == ManagedUserSyncService::kNoAvatar ? 0 : avatar_index; 105 avatar_index == ManagedUserSyncService::kNoAvatar ? 0 : avatar_index;
88 std::string avatar_url = 106 std::string avatar_url =
89 ProfileInfoCache::GetDefaultAvatarIconUrl(avatar_index); 107 ProfileInfoCache::GetDefaultAvatarIconUrl(avatar_index);
90 managed_user->SetString("iconURL", avatar_url); 108 managed_user->SetString("iconURL", avatar_url);
91 bool on_current_device = 109 bool on_current_device =
92 managed_user_ids.find(it.key()) != managed_user_ids.end(); 110 managed_user_ids.find(it.key()) != managed_user_ids.end();
93 managed_user->SetBoolean("onCurrentDevice", on_current_device); 111 managed_user->SetBoolean("onCurrentDevice", on_current_device);
94 112
95 managed_users.Append(managed_user); 113 managed_users.Append(managed_user);
96 } 114 }
97 115
98 web_ui()->CallJavascriptFunction( 116 web_ui()->CallJavascriptFunction(
99 "ManagedUserImportOverlay.receiveExistingManagedUsers", 117 "ManagedUserImportOverlay.receiveExistingManagedUsers",
100 managed_users); 118 managed_users);
101 } 119 }
102 120
103 } // namespace options 121 } // namespace options
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698