blob: 356770f78a3c02f6e2e62752a775d9fa014bc6e1 [file] [log] [blame]
// Copyright 2019 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.
#ifndef CHROME_BROWSER_TOUCH_TO_FILL_ANDROID_TOUCH_TO_FILL_VIEW_IMPL_H_
#define CHROME_BROWSER_TOUCH_TO_FILL_ANDROID_TOUCH_TO_FILL_VIEW_IMPL_H_
#include "base/android/scoped_java_ref.h"
#include "base/callback.h"
#include "chrome/browser/touch_to_fill/touch_to_fill_view.h"
class TouchToFillController;
// This class provides an implementation of the TouchToFillView interface and
// communicates via JNI with its TouchToFillBridge Java counterpart.
class TouchToFillViewImpl : public TouchToFillView {
public:
explicit TouchToFillViewImpl(TouchToFillController* controller);
~TouchToFillViewImpl() override;
// TouchToFillView:
void Show(
base::StringPiece16 formatted_url,
IsOriginSecure is_origin_secure,
base::span<const password_manager::CredentialPair> credentials) override;
void OnCredentialSelected(
const password_manager::CredentialPair& credential) override;
void OnDismiss() override;
// Called from Java via JNI:
void OnCredentialSelected(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& credential);
void OnDismiss(JNIEnv* env);
private:
TouchToFillController* controller_ = nullptr;
base::android::ScopedJavaGlobalRef<jobject> java_object_;
};
#endif // CHROME_BROWSER_TOUCH_TO_FILL_ANDROID_TOUCH_TO_FILL_VIEW_IMPL_H_