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
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_UI_ANDROID_AUTOFILL_AUTOFILL_DIALOG_RESULT_H_
6#define CHROME_BROWSER_UI_ANDROID_AUTOFILL_AUTOFILL_DIALOG_RESULT_H_
7
8#include <jni.h>
9#include <string>
10
11#include "base/memory/scoped_ptr.h"
12#include "base/strings/string16.h"
13
14namespace autofill {
15namespace wallet {
16class FullWallet;
17}
18}
19
20namespace autofill {
21
22// A result of the non-cancelled Java-side AutofillDialog invocation.
23// Passed to the AutofillDialogControllerAndroid in dialogContinue.
24class AutofillDialogResult {
25 public:
26  // Converts the requested information to wallet::FullWallet.
27  // The dialog stores the requested information in the same format
28  // regardless if the information was obtained from Autofill or Google Wallet.
29  static scoped_ptr<wallet::FullWallet> ConvertFromJava(
30      JNIEnv* env, jobject wallet);
31
32  // Returns the email address to be associated with this request,
33  // or an empty string.
34  static base::string16 GetWalletEmail(JNIEnv* env, jobject wallet);
35
36  // Returns the Google Transaction ID to be associated with this request,
37  // or an empty string.
38  static std::string GetWalletGoogleTransactionId(JNIEnv* env, jobject wallet);
39
40  // Establishes JNI bindings.
41  static bool RegisterAutofillDialogResult(JNIEnv* env);
42
43 private:
44  DISALLOW_COPY_AND_ASSIGN(AutofillDialogResult);
45};
46
47}  // namespace autofill
48
49#endif  // CHROME_BROWSER_UI_ANDROID_AUTOFILL_AUTOFILL_DIALOG_RESULT_H_
50