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#ifndef CHROME_BROWSER_UI_ASH_USER_ACCOUNTS_DELEGATE_CHROMEOS_H_ 6#define CHROME_BROWSER_UI_ASH_USER_ACCOUNTS_DELEGATE_CHROMEOS_H_ 7 8#include "ash/system/user/user_accounts_delegate.h" 9#include "base/compiler_specific.h" 10#include "base/macros.h" 11#include "google_apis/gaia/oauth2_token_service.h" 12 13class Profile; 14 15namespace chromeos { 16 17class UserAccountsDelegateChromeOS : public ash::tray::UserAccountsDelegate, 18 public OAuth2TokenService::Observer { 19 public: 20 explicit UserAccountsDelegateChromeOS(Profile* user_profile); 21 virtual ~UserAccountsDelegateChromeOS(); 22 23 // Overridden from ash::tray::UserAccountsDelegate: 24 virtual std::string GetPrimaryAccountId() OVERRIDE; 25 virtual std::vector<std::string> GetSecondaryAccountIds() OVERRIDE; 26 virtual std::string GetAccountDisplayName( 27 const std::string& account_id) OVERRIDE; 28 virtual void DeleteAccount(const std::string& account_id) OVERRIDE; 29 virtual void LaunchAddAccountDialog() OVERRIDE; 30 31 // Overridden from OAuth2TokenServiceObserver: 32 virtual void OnRefreshTokenAvailable(const std::string& account_id) OVERRIDE; 33 virtual void OnRefreshTokenRevoked(const std::string& account_id) OVERRIDE; 34 35 private: 36 Profile* user_profile_; 37 38 DISALLOW_COPY_AND_ASSIGN(UserAccountsDelegateChromeOS); 39}; 40 41} // namespace chromeos 42 43#endif // CHROME_BROWSER_UI_ASH_USER_ACCOUNTS_DELEGATE_CHROMEOS_H_ 44