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