Index: chrome/browser/ui/views/profiles/profile_chooser_view.cc |
diff --git a/chrome/browser/ui/views/profiles/profile_chooser_view.cc b/chrome/browser/ui/views/profiles/profile_chooser_view.cc |
index a2ea686aee4144bdefbae3fc7768accb0d697b2e..a0fa3c118df7596bed657e9ad77df468fbc0a3e1 100644 |
--- a/chrome/browser/ui/views/profiles/profile_chooser_view.cc |
+++ b/chrome/browser/ui/views/profiles/profile_chooser_view.cc |
@@ -7,6 +7,7 @@ |
#include "base/prefs/pref_service.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/browser_process.h" |
+#include "chrome/browser/first_run/first_run.h" |
#include "chrome/browser/lifetime/application_lifetime.h" |
#include "chrome/browser/prefs/incognito_mode_prefs.h" |
#include "chrome/browser/profiles/profile_avatar_icon_util.h" |
@@ -25,6 +26,8 @@ |
#include "chrome/browser/ui/chrome_pages.h" |
#include "chrome/browser/ui/singleton_tabs.h" |
#include "chrome/browser/ui/views/profiles/user_manager_view.h" |
+#include "chrome/browser/ui/webui/signin/login_ui_service.h" |
+#include "chrome/browser/ui/webui/signin/login_ui_service_factory.h" |
#include "chrome/common/pref_names.h" |
#include "chrome/common/url_constants.h" |
#include "components/signin/core/browser/mutable_profile_oauth2_token_service.h" |
@@ -65,13 +68,15 @@ namespace { |
const int kFixedMenuWidth = 250; |
const int kButtonHeight = 32; |
-const int kProfileAvatarTutorialShowMax = 1; |
const int kFixedGaiaViewHeight = 400; |
const int kFixedGaiaViewWidth = 360; |
const int kFixedAccountRemovalViewWidth = 280; |
-const int kFixedEndPreviewViewWidth = 280; |
+const int kFixedSwitchUserViewWidth = 280; |
const int kLargeImageSide = 88; |
+// The maximum number of times to show the welcome tutorial for an upgrade user. |
+const int kUpgradeWelcomeTutorialShowMax = 1; |
+ |
// Creates a GridLayout with a single column. This ensures that all the child |
// views added get auto-expanded to fill the full width of the bubble. |
views::GridLayout* CreateSingleColumnLayout(views::View* view, int width) { |
@@ -369,8 +374,8 @@ class EditableProfileName : public RightAlignedIconLabelButton, |
// A title card with one back button right aligned and one label center aligned. |
class TitleCard : public views::View { |
public: |
- TitleCard(int message_id, views::ButtonListener* listener, |
- views::ImageButton** back_button) { |
+ TitleCard(const base::string16& message, views::ButtonListener* listener, |
+ views::ImageButton** back_button) { |
back_button_ = new views::ImageButton(listener); |
back_button_->SetImageAlignment(views::ImageButton::ALIGN_LEFT, |
views::ImageButton::ALIGN_MIDDLE); |
@@ -385,7 +390,7 @@ class TitleCard : public views::View { |
rb->GetImageSkiaNamed(IDR_BACK_D)); |
*back_button = back_button_; |
- title_label_ = new views::Label(l10n_util::GetStringUTF16(message_id)); |
+ title_label_ = new views::Label(message); |
title_label_->SetHorizontalAlignment(gfx::ALIGN_CENTER); |
const gfx::FontList& medium_font_list = |
rb->GetFontList(ui::ResourceBundle::MediumFont); |
@@ -523,14 +528,8 @@ void ProfileChooserView::ResetView() { |
open_other_profile_indexes_map_.clear(); |
delete_account_button_map_.clear(); |
reauth_account_button_map_.clear(); |
- tutorial_learn_more_link_ = NULL; |
- tutorial_ok_button_ = NULL; |
- tutorial_enable_new_profile_management_button_ = NULL; |
- tutorial_end_preview_link_ = NULL; |
- tutorial_send_feedback_button_ = NULL; |
manage_accounts_link_ = NULL; |
signin_current_profile_link_ = NULL; |
- question_mark_button_ = NULL; |
auth_error_email_button_ = NULL; |
current_profile_photo_ = NULL; |
current_profile_name_ = NULL; |
@@ -541,8 +540,13 @@ void ProfileChooserView::ResetView() { |
gaia_signin_cancel_button_ = NULL; |
remove_account_button_ = NULL; |
account_removal_cancel_button_ = NULL; |
- end_preview_and_relaunch_button_ = NULL; |
- end_preview_cancel_button_ = NULL; |
+ add_person_button_ = NULL; |
+ disconnect_button_ = NULL; |
+ switch_user_cancel_button_ = NULL; |
+ tutorial_sync_settings_ok_button_ = NULL; |
+ tutorial_sync_settings_link_ = NULL; |
+ tutorial_see_whats_new_button_ = NULL; |
+ tutorial_not_you_link_ = NULL; |
tutorial_mode_ = profiles::TUTORIAL_MODE_NONE; |
} |
@@ -562,6 +566,13 @@ void ProfileChooserView::Init() { |
void ProfileChooserView::OnAvatarMenuChanged( |
AvatarMenu* avatar_menu) { |
+ // Do not refresh the avatar menu if the user is on a signin related view. |
+ if (view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN || |
+ view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT || |
+ view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH) { |
+ return; |
+ } |
+ |
// Refresh the view with the new menu. We can't just update the local copy |
// as this may have been triggered by a sign out action, in which case |
// the view is being destroyed. |
@@ -570,12 +581,12 @@ void ProfileChooserView::OnAvatarMenuChanged( |
void ProfileChooserView::OnRefreshTokenAvailable( |
const std::string& account_id) { |
- // Refresh the account management view when a new account is added to the |
- // profile. |
if (view_mode_ == profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT || |
view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN || |
view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT || |
view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH) { |
+ if (view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN) |
+ tutorial_mode_ = profiles::TUTORIAL_MODE_CONFIRM_SIGNIN; |
// The account management UI is only available through the |
// --enable-account-consistency flag. |
ShowView(switches::IsEnableAccountConsistency() ? |
@@ -595,10 +606,10 @@ void ProfileChooserView::ShowView(profiles::BubbleViewMode view_to_display, |
AvatarMenu* avatar_menu) { |
// The account management view should only be displayed if the active profile |
// is signed in. |
+ const AvatarMenu::Item& active_item = avatar_menu->GetItemAt( |
+ avatar_menu->GetActiveProfileIndex()); |
if (view_to_display == profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT) { |
DCHECK(switches::IsEnableAccountConsistency()); |
- const AvatarMenu::Item& active_item = avatar_menu->GetItemAt( |
- avatar_menu->GetActiveProfileIndex()); |
DCHECK(active_item.signed_in); |
} |
@@ -628,9 +639,9 @@ void ProfileChooserView::ShowView(profiles::BubbleViewMode view_to_display, |
layout = CreateSingleColumnLayout(this, kFixedAccountRemovalViewWidth); |
sub_view = CreateAccountRemovalView(); |
break; |
- case profiles::BUBBLE_VIEW_MODE_END_PREVIEW: |
- layout = CreateSingleColumnLayout(this, kFixedEndPreviewViewWidth); |
- sub_view = CreateEndPreviewView(); |
+ case profiles::BUBBLE_VIEW_MODE_SWITCH_USER: |
+ layout = CreateSingleColumnLayout(this, kFixedSwitchUserViewWidth); |
+ sub_view = CreateSwitchUserView(active_item); |
break; |
default: |
layout = CreateSingleColumnLayout(this, kFixedMenuWidth); |
@@ -646,6 +657,11 @@ void ProfileChooserView::ShowView(profiles::BubbleViewMode view_to_display, |
void ProfileChooserView::WindowClosing() { |
DCHECK_EQ(profile_bubble_, this); |
profile_bubble_ = NULL; |
+ |
+ if (tutorial_mode_ == profiles::TUTORIAL_MODE_CONFIRM_SIGNIN) { |
+ LoginUIServiceFactory::GetForProfile(browser_->profile())-> |
+ SyncConfirmationUIClosed(false /* configure_sync_first */); |
+ } |
} |
void ProfileChooserView::ButtonPressed(views::Button* sender, |
@@ -669,21 +685,14 @@ void ProfileChooserView::ButtonPressed(views::Button* sender, |
PostActionPerformed(ProfileMetrics::PROFILE_DESKTOP_MENU_LOCK); |
} else if (sender == auth_error_email_button_) { |
ShowView(profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH, avatar_menu_.get()); |
- } else if (sender == tutorial_ok_button_) { |
- // If the user manually dismissed the tutorial, never show it again by |
- // setting the number of times shown to the maximum plus 1, so that later we |
- // could distinguish between the dismiss case and the case when the tutorial |
- // is indeed shown for the maximum number of times. |
- browser_->profile()->GetPrefs()->SetInteger( |
- prefs::kProfileAvatarTutorialShown, kProfileAvatarTutorialShowMax + 1); |
- |
- ProfileMetrics::LogProfileUpgradeEnrollment( |
- ProfileMetrics::PROFILE_ENROLLMENT_CLOSE_WELCOME_CARD); |
+ } else if (sender == tutorial_sync_settings_ok_button_) { |
+ LoginUIServiceFactory::GetForProfile(browser_->profile())-> |
+ SyncConfirmationUIClosed(false /* configure_sync_first */); |
+ tutorial_mode_ = profiles::TUTORIAL_MODE_NONE; |
ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); |
- } else if (sender == tutorial_enable_new_profile_management_button_) { |
- ProfileMetrics::LogProfileUpgradeEnrollment( |
- ProfileMetrics::PROFILE_ENROLLMENT_ACCEPT_NEW_PROFILE_MGMT); |
- profiles::EnableNewProfileManagementPreview(browser_->profile()); |
+ } else if (sender == tutorial_see_whats_new_button_) { |
+ chrome::ShowUserManagerWithTutorial( |
+ profiles::USER_MANAGER_TUTORIAL_OVERVIEW); |
} else if (sender == remove_account_button_) { |
RemoveAccount(); |
} else if (sender == account_removal_cancel_button_) { |
@@ -700,26 +709,18 @@ void ProfileChooserView::ButtonPressed(views::Button* sender, |
ShowView(account_management_available ? |
profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT : |
profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); |
- } else if (sender == question_mark_button_) { |
- tutorial_mode_ = profiles::TUTORIAL_MODE_SEND_FEEDBACK; |
- ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); |
- } else if (sender == tutorial_send_feedback_button_) { |
- ProfileMetrics::LogProfileUpgradeEnrollment( |
- ProfileMetrics::PROFILE_ENROLLMENT_SEND_FEEDBACK); |
- chrome::OpenFeedbackDialog(browser_); |
- } else if (sender == end_preview_and_relaunch_button_) { |
- ProfileMetrics::LogProfileUpgradeEnrollment( |
- ProfileMetrics::PROFILE_ENROLLMENT_DISABLE_NEW_PROFILE_MGMT); |
- profiles::DisableNewProfileManagementPreview(browser_->profile()); |
- } else if (sender == end_preview_cancel_button_) { |
- tutorial_mode_ = profiles::TUTORIAL_MODE_SEND_FEEDBACK; |
- ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); |
} else if (current_profile_photo_ && |
sender == current_profile_photo_->change_photo_button()) { |
avatar_menu_->EditProfile(avatar_menu_->GetActiveProfileIndex()); |
PostActionPerformed(ProfileMetrics::PROFILE_DESKTOP_MENU_EDIT_IMAGE); |
} else if (sender == signin_current_profile_link_) { |
ShowView(profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN, avatar_menu_.get()); |
+ } else if (sender == add_person_button_) { |
+ profiles::ShowUserManagerMaybeWithTutorial(browser_->profile()); |
+ } else if (sender == disconnect_button_) { |
+ chrome::ShowSettings(browser_); |
+ } else if (sender == switch_user_cancel_button_) { |
+ ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); |
} else { |
// Either one of the "other profiles", or one of the profile accounts |
// buttons was pressed. |
@@ -774,20 +775,13 @@ void ProfileChooserView::LinkClicked(views::Link* sender, int event_flags) { |
} else if (sender == add_account_link_) { |
ShowView(profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT, avatar_menu_.get()); |
PostActionPerformed(ProfileMetrics::PROFILE_DESKTOP_MENU_ADD_ACCT); |
- } else if (sender == tutorial_learn_more_link_) { |
- ProfileMetrics::LogProfileUpgradeEnrollment( |
- ProfileMetrics::PROFILE_ENROLLMENT_LAUNCH_LEARN_MORE); |
- // TODO(guohui): update |learn_more_url| once it is decided. |
- const GURL lear_more_url("https://support.google.com/chrome/?hl=en#to"); |
- chrome::NavigateParams params( |
- browser_->profile(), |
- lear_more_url, |
- content::PAGE_TRANSITION_LINK); |
- params.disposition = NEW_FOREGROUND_TAB; |
- chrome::Navigate(¶ms); |
+ } else if (sender == tutorial_sync_settings_link_) { |
+ LoginUIServiceFactory::GetForProfile(browser_->profile())-> |
+ SyncConfirmationUIClosed(true /* configure_sync_first */); |
+ tutorial_mode_ = profiles::TUTORIAL_MODE_NONE; |
} else { |
- DCHECK(sender == tutorial_end_preview_link_); |
- ShowView(profiles::BUBBLE_VIEW_MODE_END_PREVIEW, avatar_menu_.get()); |
+ DCHECK(sender == tutorial_not_you_link_); |
+ ShowView(profiles::BUBBLE_VIEW_MODE_SWITCH_USER, avatar_menu_.get()); |
} |
} |
@@ -840,7 +834,6 @@ views::View* ProfileChooserView::CreateProfileChooserView( |
views::View* current_profile_view = NULL; |
views::View* current_profile_accounts = NULL; |
views::View* option_buttons_view = NULL; |
- bool is_enable_account_consistency = switches::IsEnableAccountConsistency(); |
for (size_t i = 0; i < avatar_menu->GetNumberOfItems(); ++i) { |
const AvatarMenu::Item& item = avatar_menu->GetItemAt(i); |
if (item.active) { |
@@ -848,12 +841,19 @@ views::View* ProfileChooserView::CreateProfileChooserView( |
switches::IsNewProfileManagement() && item.signed_in); |
current_profile_view = CreateCurrentProfileView(item, false); |
if (view_mode_ == profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER) { |
- if (is_enable_account_consistency) { |
- tutorial_view = |
- last_tutorial_mode == profiles::TUTORIAL_MODE_SEND_FEEDBACK ? |
- CreateSendPreviewFeedbackView() : |
- CreatePreviewEnabledTutorialView( |
- item, last_tutorial_mode == profiles::TUTORIAL_MODE_WELCOME); |
+ switch (last_tutorial_mode) { |
+ case profiles::TUTORIAL_MODE_NONE: |
+ case profiles::TUTORIAL_MODE_WELCOME_UPGRADE: |
+ tutorial_view = CreateWelcomeUpgradeTutorialViewIfNeeded( |
+ last_tutorial_mode == profiles::TUTORIAL_MODE_WELCOME_UPGRADE, |
+ item); |
+ break; |
+ case profiles::TUTORIAL_MODE_CONFIRM_SIGNIN: |
+ tutorial_view = CreateSigninConfirmationView(); |
+ break; |
+ case profiles::TUTORIAL_MODE_SHOW_ERROR: |
+ // TODO(guohui): not implemented yet. |
+ NOTREACHED(); |
} |
} else { |
current_profile_accounts = CreateCurrentProfileAccountsView(item); |
@@ -864,13 +864,7 @@ views::View* ProfileChooserView::CreateProfileChooserView( |
} |
if (tutorial_view) { |
- // Be sure not to track the tutorial display on View refresh, and only count |
- // the preview-promo view, shown when New Profile Management is off. |
- if (tutorial_mode_ != last_tutorial_mode && |
- !is_enable_account_consistency) { |
- ProfileMetrics::LogProfileUpgradeEnrollment( |
- ProfileMetrics::PROFILE_ENROLLMENT_SHOW_PREVIEW_PROMO); |
- } |
+ // TODO(mlerman): update UMA stats for the new tutorial. |
layout->StartRow(1, 0); |
layout->AddView(tutorial_view); |
} |
@@ -916,49 +910,6 @@ views::View* ProfileChooserView::CreateProfileChooserView( |
return view; |
} |
-views::View* ProfileChooserView::CreatePreviewEnabledTutorialView( |
- const AvatarMenu::Item& current_avatar_item, |
- bool tutorial_shown) { |
- if (!switches::IsNewProfileManagementPreviewEnabled()) |
- return NULL; |
- |
- Profile* profile = browser_->profile(); |
- const int show_count = profile->GetPrefs()->GetInteger( |
- prefs::kProfileAvatarTutorialShown); |
- // Do not show the tutorial if user has dismissed it. |
- if (show_count > kProfileAvatarTutorialShowMax) |
- return NULL; |
- |
- if (!tutorial_shown) { |
- if (show_count == kProfileAvatarTutorialShowMax) |
- return NULL; |
- profile->GetPrefs()->SetInteger( |
- prefs::kProfileAvatarTutorialShown, show_count + 1); |
- } |
- |
- return CreateTutorialView( |
- profiles::TUTORIAL_MODE_WELCOME, |
- l10n_util::GetStringUTF16(IDS_PROFILES_PREVIEW_ENABLED_TUTORIAL_TITLE), |
- l10n_util::GetStringUTF16( |
- IDS_PROFILES_PREVIEW_ENABLED_TUTORIAL_CONTENT_TEXT), |
- l10n_util::GetStringUTF16(IDS_PROFILES_PROFILE_TUTORIAL_LEARN_MORE), |
- l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_OK_BUTTON), |
- &tutorial_learn_more_link_, |
- &tutorial_ok_button_); |
-} |
- |
-views::View* ProfileChooserView::CreateSendPreviewFeedbackView() { |
- return CreateTutorialView( |
- profiles::TUTORIAL_MODE_SEND_FEEDBACK, |
- l10n_util::GetStringUTF16(IDS_PROFILES_FEEDBACK_TUTORIAL_TITLE), |
- l10n_util::GetStringUTF16( |
- IDS_PROFILES_FEEDBACK_TUTORIAL_CONTENT_TEXT), |
- l10n_util::GetStringUTF16(IDS_PROFILES_END_PREVIEW), |
- l10n_util::GetStringUTF16(IDS_PROFILES_SEND_FEEDBACK_BUTTON), |
- &tutorial_end_preview_link_, |
- &tutorial_send_feedback_button_); |
-} |
- |
views::View* ProfileChooserView::CreateTutorialView( |
profiles::TutorialMode tutorial_mode, |
const base::string16& title_text, |
@@ -999,58 +950,27 @@ views::View* ProfileChooserView::CreateTutorialView( |
layout->AddView(content_label); |
// Adds links and buttons. |
- views::View* button_row = new views::View(); |
- views::GridLayout* button_layout = new views::GridLayout(button_row); |
- views::ColumnSet* button_columns = button_layout->AddColumnSet(0); |
+ views::ColumnSet* button_columns = layout->AddColumnSet(1); |
button_columns->AddColumn(views::GridLayout::LEADING, |
views::GridLayout::CENTER, 0, views::GridLayout::USE_PREF, 0, 0); |
button_columns->AddPaddingColumn( |
1, views::kUnrelatedControlHorizontalSpacing); |
button_columns->AddColumn(views::GridLayout::TRAILING, |
views::GridLayout::CENTER, 0, views::GridLayout::USE_PREF, 0, 0); |
- button_row->SetLayoutManager(button_layout); |
*link = CreateLink(link_text, this); |
(*link)->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
(*link)->SetAutoColorReadabilityEnabled(false); |
(*link)->SetEnabledColor(SK_ColorWHITE); |
- button_layout->StartRow(1, 0); |
- button_layout->AddView(*link); |
+ layout->StartRowWithPadding(1, 1, 0, views::kUnrelatedControlVerticalSpacing); |
+ layout->AddView(*link); |
*button = new views::LabelButton(this, button_text); |
(*button)->SetHorizontalAlignment(gfx::ALIGN_CENTER); |
(*button)->SetStyle(views::Button::STYLE_BUTTON); |
- button_layout->AddView(*button); |
+ layout->AddView(*button); |
- layout->StartRowWithPadding(1, 0, 0, views::kUnrelatedControlVerticalSpacing); |
- layout->AddView(button_row); |
- |
- // Adds a padded caret image at the bottom. |
- views::View* padded_caret_view = new views::View(); |
- views::GridLayout* padded_caret_layout = |
- new views::GridLayout(padded_caret_view); |
- views::ColumnSet* padded_columns = padded_caret_layout->AddColumnSet(0); |
- padded_columns->AddPaddingColumn(0, views::kButtonHEdgeMarginNew); |
- padded_columns->AddColumn(views::GridLayout::LEADING, |
- views::GridLayout::CENTER, 0, views::GridLayout::USE_PREF, 0, 0); |
- padded_caret_view->SetLayoutManager(padded_caret_layout); |
- |
- views::ImageView* caret_image_view = new views::ImageView(); |
- ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); |
- caret_image_view->SetImage( |
- *rb->GetImageSkiaNamed(IDR_ICON_PROFILES_MENU_CARET)); |
- |
- padded_caret_layout->StartRow(1, 0); |
- padded_caret_layout->AddView(caret_image_view); |
- |
- views::View* view_with_caret = new views::View(); |
- views::GridLayout* layout_with_caret = |
- CreateSingleColumnLayout(view_with_caret, kFixedMenuWidth); |
- layout_with_caret->StartRow(1, 0); |
- layout_with_caret->AddView(view); |
- layout_with_caret->StartRow(1, 0); |
- layout_with_caret->AddView(padded_caret_view); |
- return view_with_caret; |
+ return view; |
} |
views::View* ProfileChooserView::CreateCurrentProfileView( |
@@ -1074,22 +994,6 @@ views::View* ProfileChooserView::CreateCurrentProfileView( |
profile_icon_container->AddChildView(current_profile_photo_); |
ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); |
- if (switches::IsNewProfileManagementPreviewEnabled()) { |
- question_mark_button_ = new views::ImageButton(this); |
- question_mark_button_->SetImageAlignment( |
- views::ImageButton::ALIGN_LEFT, views::ImageButton::ALIGN_MIDDLE); |
- question_mark_button_->SetImage(views::ImageButton::STATE_NORMAL, |
- rb->GetImageSkiaNamed(IDR_ICON_PROFILES_MENU_QUESTION_STABLE)); |
- question_mark_button_->SetImage(views::ImageButton::STATE_HOVERED, |
- rb->GetImageSkiaNamed(IDR_ICON_PROFILES_MENU_QUESTION_HOVER)); |
- question_mark_button_->SetImage(views::ImageButton::STATE_PRESSED, |
- rb->GetImageSkiaNamed(IDR_ICON_PROFILES_MENU_QUESTION_SELECT)); |
- gfx::Size preferred_size = question_mark_button_->GetPreferredSize(); |
- question_mark_button_->SetBounds( |
- 0, 0, preferred_size.width(), preferred_size.height()); |
- profile_icon_container->AddChildView(question_mark_button_); |
- } |
- |
if (browser_->profile()->IsSupervised()) { |
views::ImageView* supervised_icon = new views::ImageView(); |
supervised_icon->SetImage( |
@@ -1154,9 +1058,8 @@ views::View* ProfileChooserView::CreateCurrentProfileView( |
} |
} |
} else { |
- SigninManagerBase* signin_manager = |
- SigninManagerFactory::GetForProfile( |
- browser_->profile()->GetOriginalProfile()); |
+ SigninManagerBase* signin_manager = SigninManagerFactory::GetForProfile( |
+ browser_->profile()->GetOriginalProfile()); |
if (signin_manager->IsSigninAllowed()) { |
views::Label* promo = new views::Label( |
l10n_util::GetStringUTF16(IDS_PROFILES_SIGNIN_PROMO)); |
@@ -1415,7 +1318,8 @@ views::View* ProfileChooserView::CreateGaiaSigninView() { |
web_view->SetPreferredSize( |
gfx::Size(kFixedGaiaViewWidth, kFixedGaiaViewHeight)); |
- TitleCard* title_card = new TitleCard(message_id, this, |
+ TitleCard* title_card = new TitleCard(l10n_util::GetStringUTF16(message_id), |
+ this, |
&gaia_signin_cancel_button_); |
return TitleCard::AddPaddedTitleCard( |
web_view, title_card, kFixedGaiaViewWidth); |
@@ -1476,57 +1380,116 @@ views::View* ProfileChooserView::CreateAccountRemovalView() { |
layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); |
} |
- TitleCard* title_card = new TitleCard(IDS_PROFILES_ACCOUNT_REMOVAL_TITLE, |
+ TitleCard* title_card = new TitleCard( |
+ l10n_util::GetStringUTF16(IDS_PROFILES_ACCOUNT_REMOVAL_TITLE), |
this, &account_removal_cancel_button_); |
return TitleCard::AddPaddedTitleCard(view, title_card, |
kFixedAccountRemovalViewWidth); |
} |
-views::View* ProfileChooserView::CreateNewProfileManagementPreviewView() { |
+views::View* ProfileChooserView::CreateWelcomeUpgradeTutorialViewIfNeeded( |
+ bool tutorial_shown, const AvatarMenu::Item& avatar_item){ |
+ if (first_run::IsChromeFirstRun()) |
+ return NULL; |
+ |
+ Profile* profile = browser_->profile(); |
+ if (!avatar_item.signed_in) { |
+ profile->GetPrefs()->SetInteger( |
+ prefs::kProfileAvatarTutorialShown, kUpgradeWelcomeTutorialShowMax + 1); |
+ return NULL; |
+ } |
+ |
+ const int show_count = profile->GetPrefs()->GetInteger( |
+ prefs::kProfileAvatarTutorialShown); |
+ // Do not show the tutorial if user has dismissed it. |
+ if (show_count > kUpgradeWelcomeTutorialShowMax) |
+ return NULL; |
+ |
+ if (!tutorial_shown) { |
+ if (show_count == kUpgradeWelcomeTutorialShowMax) |
+ return NULL; |
+ profile->GetPrefs()->SetInteger( |
+ prefs::kProfileAvatarTutorialShown, show_count + 1); |
+ } |
+ |
return CreateTutorialView( |
- profiles::TUTORIAL_MODE_ENABLE_PREVIEW, |
- l10n_util::GetStringUTF16(IDS_PROFILES_PREVIEW_TUTORIAL_TITLE), |
- l10n_util::GetStringUTF16(IDS_PROFILES_PREVIEW_TUTORIAL_CONTENT_TEXT), |
- l10n_util::GetStringUTF16(IDS_PROFILES_PROFILE_TUTORIAL_LEARN_MORE), |
- l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_TRY_BUTTON), |
- &tutorial_learn_more_link_, |
- &tutorial_enable_new_profile_management_button_); |
+ profiles::TUTORIAL_MODE_WELCOME_UPGRADE, |
+ l10n_util::GetStringFUTF16( |
+ IDS_PROFILES_WELCOME_UPGRADE_TUTORIAL_TITLE, avatar_item.name), |
+ l10n_util::GetStringUTF16( |
+ IDS_PROFILES_WELCOME_UPGRADE_TUTORIAL_CONTENT_TEXT), |
+ l10n_util::GetStringFUTF16( |
+ IDS_PROFILES_NOT_YOU, avatar_item.name), |
+ l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_WHATS_NEW_BUTTON), |
+ &tutorial_not_you_link_, |
+ &tutorial_see_whats_new_button_); |
+} |
+ |
+views::View* ProfileChooserView::CreateSigninConfirmationView(){ |
+ return CreateTutorialView( |
+ profiles::TUTORIAL_MODE_CONFIRM_SIGNIN, |
+ l10n_util::GetStringUTF16(IDS_PROFILES_CONFIRM_SIGNIN_TUTORIAL_TITLE), |
+ l10n_util::GetStringUTF16( |
+ IDS_PROFILES_CONFIRM_SIGNIN_TUTORIAL_CONTENT_TEXT), |
+ l10n_util::GetStringUTF16(IDS_PROFILES_SYNC_SETTINGS_LINK), |
+ l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_OK_BUTTON), |
+ &tutorial_sync_settings_link_, |
+ &tutorial_sync_settings_ok_button_); |
} |
-views::View* ProfileChooserView::CreateEndPreviewView() { |
+views::View* ProfileChooserView::CreateSwitchUserView( |
+ const AvatarMenu::Item& avatar_item) { |
views::View* view = new views::View(); |
views::GridLayout* layout = CreateSingleColumnLayout( |
- view, kFixedAccountRemovalViewWidth - 2 * views::kButtonHEdgeMarginNew); |
- layout->SetInsets(0, |
- views::kButtonHEdgeMarginNew, |
- views::kButtonVEdgeMarginNew, |
- views::kButtonHEdgeMarginNew); |
+ view, kFixedSwitchUserViewWidth); |
+ views::ColumnSet* columns = layout->AddColumnSet(1); |
+ columns->AddPaddingColumn(0, views::kButtonHEdgeMarginNew); |
+ int label_width = |
+ kFixedSwitchUserViewWidth - 2 * views::kButtonHEdgeMarginNew; |
+ columns->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 0, |
+ views::GridLayout::FIXED, label_width, label_width); |
+ columns->AddPaddingColumn(0, views::kButtonHEdgeMarginNew); |
// Adds main text. |
- views::Label* content_label = new views::Label( |
- l10n_util::GetStringUTF16(IDS_PROFILES_END_PREVIEW_TEXT)); |
- content_label->SetMultiLine(true); |
- content_label->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
+ layout->StartRowWithPadding(1, 1, 0, views::kUnrelatedControlVerticalSpacing); |
ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); |
const gfx::FontList& small_font_list = |
rb->GetFontList(ui::ResourceBundle::SmallFont); |
+ views::Label* content_label = new views::Label( |
+ l10n_util::GetStringFUTF16( |
+ IDS_PROFILES_NOT_YOU_CONTENT_TEXT, avatar_item.name)); |
+ content_label->SetMultiLine(true); |
+ content_label->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
content_label->SetFontList(small_font_list); |
- layout->StartRowWithPadding(1, 0, 0, views::kUnrelatedControlVerticalSpacing); |
layout->AddView(content_label); |
- // Adds button. |
- end_preview_and_relaunch_button_ = new views::BlueButton( |
- this, l10n_util::GetStringUTF16(IDS_PROFILES_END_PREVIEW_AND_RELAUNCH)); |
- end_preview_and_relaunch_button_->SetHorizontalAlignment( |
- gfx::ALIGN_CENTER); |
- layout->StartRowWithPadding( |
- 1, 0, 0, views::kUnrelatedControlVerticalSpacing); |
- layout->AddView(end_preview_and_relaunch_button_); |
+ // Adds "Add person" button. |
+ layout->StartRowWithPadding(1, 0, 0, views::kUnrelatedControlVerticalSpacing); |
+ layout->AddView(new views::Separator(views::Separator::HORIZONTAL)); |
+ |
+ add_person_button_ = new BackgroundColorHoverButton( |
+ this, |
+ l10n_util::GetStringUTF16(IDS_PROFILES_ADD_PERSON_BUTTON), |
+ *rb->GetImageSkiaNamed(IDR_ICON_PROFILES_MENU_AVATAR)); |
+ layout->StartRow(1, 0); |
+ layout->AddView(add_person_button_); |
+ |
+ // Adds "Disconnect your Google Account" button. |
+ layout->StartRow(1, 0); |
+ layout->AddView(new views::Separator(views::Separator::HORIZONTAL)); |
+ |
+ disconnect_button_ = new BackgroundColorHoverButton( |
+ this, |
+ l10n_util::GetStringUTF16(IDS_PROFILES_DISCONNECT_BUTTON), |
+ *rb->GetImageSkiaNamed(IDR_ICON_PROFILES_MENU_AVATAR)); |
+ layout->StartRow(1, 0); |
+ layout->AddView(disconnect_button_); |
TitleCard* title_card = new TitleCard( |
- IDS_PROFILES_END_PREVIEW, this, &end_preview_cancel_button_); |
- return TitleCard::AddPaddedTitleCard( |
- view, title_card, kFixedAccountRemovalViewWidth); |
+ l10n_util::GetStringFUTF16(IDS_PROFILES_NOT_YOU, avatar_item.name), |
+ this, &switch_user_cancel_button_); |
+ return TitleCard::AddPaddedTitleCard(view, title_card, |
+ kFixedSwitchUserViewWidth); |
} |
bool ProfileChooserView::ShouldShowGoIncognito() const { |