1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file.
4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#ifndef CHROME_BROWSER_UI_AUTO_LOGIN_INFOBAR_DELEGATE_ANDROID_H_
5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define CHROME_BROWSER_UI_AUTO_LOGIN_INFOBAR_DELEGATE_ANDROID_H_
6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/android/jni_helper.h"
8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/android/scoped_java_ref.h"
9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "chrome/browser/ui/auto_login_infobar_delegate.h"
10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass AutoLoginInfoBarDelegateAndroid : public AutoLoginInfoBarDelegate {
12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch public:
13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  AutoLoginInfoBarDelegateAndroid(InfoBarService* owner, const Params& params);
14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  virtual ~AutoLoginInfoBarDelegateAndroid();
15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  // ConfirmInfoBarDelegate:
17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  virtual bool Accept() OVERRIDE;
18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  virtual bool Cancel() OVERRIDE;
19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  virtual string16 GetMessageText() const OVERRIDE;
20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  // These methods are defined in downstream code.
22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  bool AttachAccount(JavaObjectWeakGlobalRef weak_java_translate_helper);
23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  void LoginSuccess(JNIEnv* env, jobject obj, jstring result);
24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  void LoginFailed(JNIEnv* env, jobject obj);
25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  void LoginDismiss(JNIEnv* env, jobject obj);
26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  // Register Android JNI bindings.
28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  static bool Register(JNIEnv* env);
29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch private:
31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  const std::string& realm() const { return params_.header.realm; }
32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  const std::string& account() const { return params_.header.account; }
33eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  const std::string& args() const { return params_.header.args; }
34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
35eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  JavaObjectWeakGlobalRef weak_java_auto_login_delegate_;
36eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  std::string user_;
37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  const Params params_;
38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  DISALLOW_COPY_AND_ASSIGN(AutoLoginInfoBarDelegateAndroid);
40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch};
41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#endif  // CHROME_BROWSER_UI_AUTO_LOGIN_INFOBAR_DELEGATE_ANDROID_H_
44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
45