blob: 52952e6a3db3b9e95d27d1d4f424444da930886a [file] [log] [blame]
// Copyright 2020 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_ANDROID_AUTOFILL_ASSISTANT_ASSISTANT_HEADER_MODEL_H_
#define CHROME_BROWSER_ANDROID_AUTOFILL_ASSISTANT_ASSISTANT_HEADER_MODEL_H_
#include <string>
#include "base/android/jni_android.h"
#include "base/android/scoped_java_ref.h"
#include "chrome/browser/android/autofill_assistant/assistant_header_delegate.h"
#include "components/autofill_assistant/browser/service.pb.h"
namespace autofill_assistant {
// C++ equivalent to java-side |AssistantHeaderModel|.
class AssistantHeaderModel {
public:
AssistantHeaderModel(
const base::android::ScopedJavaLocalRef<jobject>& jmodel);
~AssistantHeaderModel();
base::android::ScopedJavaGlobalRef<jobject> GetJavaObject() const;
void SetDelegate(const AssistantHeaderDelegate& delegate);
void SetStatusMessage(const std::string& status_message);
void SetBubbleMessage(const std::string& bubble_message);
void SetProgress(int progress);
void SetProgressActiveStep(int active_step);
void SetProgressVisible(bool visible);
void SetProgressBarErrorState(bool error);
void SetStepProgressBarConfiguration(
const ShowProgressBarProto::StepProgressBarConfiguration& configuration,
const base::android::ScopedJavaLocalRef<jobject>& jcontext);
void SetSpinPoodle(bool enabled);
void SetChips(const base::android::ScopedJavaLocalRef<jobject>& jchips);
void SetDisableAnimations(bool disable_animations);
private:
// Java-side AssistantHeaderModel object.
base::android::ScopedJavaGlobalRef<jobject> jmodel_;
};
} // namespace autofill_assistant
#endif // CHROME_BROWSER_ANDROID_AUTOFILL_ASSISTANT_ASSISTANT_HEADER_MODEL_H_