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

Unified Diff: chrome/browser/extensions/app_notify_channel_ui.cc

Issue 10700202: Add Android stub implementation for AppNotifyChannelUI (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added a Create method to the interface Created 8 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
Index: chrome/browser/extensions/app_notify_channel_ui.cc
diff --git a/chrome/browser/extensions/app_notify_channel_ui.cc b/chrome/browser/extensions/app_notify_channel_ui.cc
deleted file mode 100644
index f4bd4b04c9b6a970a9d3f2c4c1f0c65749720f72..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/app_notify_channel_ui.cc
+++ /dev/null
@@ -1,201 +0,0 @@
-// Copyright (c) 2012 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 "chrome/browser/extensions/app_notify_channel_ui.h"
-
-#include "base/utf_string_conversions.h"
-#include "chrome/browser/infobars/infobar_tab_helper.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/signin/signin_manager.h"
-#include "chrome/browser/signin/signin_manager_factory.h"
-#include "chrome/browser/sync/profile_sync_service.h"
-#include "chrome/browser/sync/profile_sync_service_factory.h"
-#include "chrome/browser/tab_contents/confirm_infobar_delegate.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_finder.h"
-#include "chrome/browser/ui/chrome_pages.h"
-#include "chrome/browser/ui/tab_contents/tab_contents.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/url_constants.h"
-#include "content/public/browser/notification_details.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/browser/notification_registrar.h"
-#include "content/public/browser/notification_source.h"
-#include "content/public/browser/notification_service.h"
-#include "content/public/browser/notification_types.h"
-#include "grit/generated_resources.h"
-#include "ui/base/l10n/l10n_util.h"
-
-class AppNotifyChannelUIImpl::InfoBar : public ConfirmInfoBarDelegate {
- public:
- InfoBar(AppNotifyChannelUIImpl* creator,
- InfoBarTabHelper* helper,
- const std::string& app_name);
- virtual ~InfoBar();
-
- // ConfirmInfoBarDelegate.
- virtual string16 GetMessageText() const OVERRIDE;
- virtual string16 GetButtonLabel(InfoBarButton button) const OVERRIDE;
- virtual bool Accept() OVERRIDE;
- virtual bool Cancel() OVERRIDE;
- virtual void InfoBarDismissed() OVERRIDE;
-
- private:
- AppNotifyChannelUIImpl* creator_;
- std::string app_name_;
-
- DISALLOW_COPY_AND_ASSIGN(InfoBar);
-};
-
-AppNotifyChannelUIImpl::InfoBar::InfoBar(
- AppNotifyChannelUIImpl* creator,
- InfoBarTabHelper* helper,
- const std::string& app_name)
- : ConfirmInfoBarDelegate(helper), creator_(creator), app_name_(app_name) {
-}
-
-AppNotifyChannelUIImpl::InfoBar::~InfoBar() {}
-
-string16 AppNotifyChannelUIImpl::InfoBar::GetMessageText() const {
- return l10n_util::GetStringFUTF16(IDS_APP_NOTIFICATION_NEED_SIGNIN,
- UTF8ToUTF16(app_name_));
-}
-
-string16 AppNotifyChannelUIImpl::InfoBar::GetButtonLabel(
- InfoBarButton button) const {
- if (button == BUTTON_OK) {
- return l10n_util::GetStringUTF16(IDS_APP_NOTIFICATION_NEED_SIGNIN_ACCEPT);
- } else if (button == BUTTON_CANCEL) {
- return l10n_util::GetStringUTF16(IDS_APP_NOTIFICATION_NEED_SIGNIN_CANCEL);
- } else {
- NOTREACHED();
- }
- return string16();
-}
-
-bool AppNotifyChannelUIImpl::InfoBar::Accept() {
- creator_->OnInfoBarResult(true);
- return true;
-}
-
-bool AppNotifyChannelUIImpl::InfoBar::Cancel() {
- creator_->OnInfoBarResult(false);
- return true;
-}
-
-void AppNotifyChannelUIImpl::InfoBar::InfoBarDismissed() {
- Cancel();
-}
-
-
-AppNotifyChannelUIImpl::AppNotifyChannelUIImpl(
- Profile* profile,
- TabContents* tab_contents,
- const std::string& app_name,
- AppNotifyChannelUI::UIType ui_type)
- : profile_(profile->GetOriginalProfile()),
- tab_contents_(tab_contents),
- app_name_(app_name),
- ui_type_(ui_type),
- delegate_(NULL),
- observing_sync_(false),
- wizard_shown_to_user_(false) {
-}
-
-AppNotifyChannelUIImpl::~AppNotifyChannelUIImpl() {
- // We should have either not started observing sync, or already called
- // StopObservingSync by this point.
- CHECK(!observing_sync_);
-}
-
-void AppNotifyChannelUIImpl::PromptSyncSetup(
- AppNotifyChannelUI::Delegate* delegate) {
- CHECK(delegate_ == NULL);
- delegate_ = delegate;
-
- if (!ProfileSyncServiceFactory::GetInstance()->HasProfileSyncService(
- profile_)) {
- delegate_->OnSyncSetupResult(false);
- return;
- }
-
- if (ui_type_ == NO_INFOBAR) {
- OnInfoBarResult(true);
- return;
- }
-
- InfoBarTabHelper* helper = tab_contents_->infobar_tab_helper();
- helper->AddInfoBar(new AppNotifyChannelUIImpl::InfoBar(
- this, helper, app_name_));
-}
-
-void AppNotifyChannelUIImpl::OnInfoBarResult(bool accepted) {
- if (!accepted) {
- delegate_->OnSyncSetupResult(false);
- return;
- }
-
- StartObservingSync();
- // Bring up the login page.
- LoginUIService* login_ui_service =
- LoginUIServiceFactory::GetForProfile(profile_);
- LoginUIService::LoginUI* login_ui = login_ui_service->current_login_ui();
- if (login_ui) {
- // Some sort of login UI is already visible.
- SigninManager* signin = SigninManagerFactory::GetForProfile(profile_);
- if (signin->GetAuthenticatedUsername().empty()) {
- // User is not logged in yet, so just bring up the login UI (could be
- // the promo UI).
- login_ui->FocusUI();
- return;
- } else {
- // User is already logged in, so close whatever sync config UI the
- // user is looking at and display new login UI.
- login_ui->CloseUI();
- DCHECK(!login_ui_service->current_login_ui());
- }
- }
- // Any existing UI is now closed - display new login UI.
- Browser* browser = browser::FindBrowserWithWebContents(
- tab_contents_->web_contents());
- chrome::ShowSettingsSubPage(browser, chrome::kSyncSetupForceLoginSubPage);
-}
-
-void AppNotifyChannelUIImpl::OnStateChanged() {
-#if !defined(OS_ANDROID)
- ProfileSyncService* sync_service =
- ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile_);
- LoginUIService* login_service =
- LoginUIServiceFactory::GetForProfile(profile_);
-
- bool wizard_visible = (login_service->current_login_ui() != NULL);
- // ProfileSyncService raises OnStateChanged many times. Even multiple
- // times before the wizard actually becomes visible for the first time.
- // So we have to wait for the wizard to become visible once and then we
- // wait for it to get dismissed.
- bool finished = wizard_shown_to_user_ && !wizard_visible;
- if (wizard_visible)
- wizard_shown_to_user_ = true;
-
- if (finished) {
- StopObservingSync();
- delegate_->OnSyncSetupResult(sync_service->HasSyncSetupCompleted());
- }
-#endif // !defined(OS_ANDROID)
-}
-
-void AppNotifyChannelUIImpl::StartObservingSync() {
- CHECK(!observing_sync_);
- observing_sync_ = true;
- ProfileSyncServiceFactory::GetInstance()->GetForProfile(
- profile_)->AddObserver(this);
-}
-
-void AppNotifyChannelUIImpl::StopObservingSync() {
- CHECK(observing_sync_);
- observing_sync_ = false;
- ProfileSyncServiceFactory::GetInstance()->GetForProfile(
- profile_)->RemoveObserver(this);
-}
« no previous file with comments | « chrome/browser/extensions/app_notify_channel_ui.h ('k') | chrome/browser/extensions/app_notify_channel_ui_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698