chromium/chrome/browser/ui/android/hats/survey_ui_delegate_android.cc

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/ui/android/hats/survey_ui_delegate_android.h"

#include "components/messages/android/message_wrapper.h"
#include "ui/android/window_android.h"

// Must come after all headers that specialize FromJniType() / ToJniType().
#include "chrome/browser/ui/android/hats/internal/jni_headers/SurveyUiDelegateBridge_jni.h"

using base::android::JavaRef;
using base::android::ScopedJavaLocalRef;

namespace hats {

SurveyUiDelegateAndroid::SurveyUiDelegateAndroid() {
  JNIEnv* env = base::android::AttachCurrentThread();
  jobj_ =
      Java_SurveyUiDelegateBridge_create(env, reinterpret_cast<int64_t>(this));
}

SurveyUiDelegateAndroid::SurveyUiDelegateAndroid(
    messages::MessageWrapper* messages,
    ui::WindowAndroid* window) {
  JNIEnv* env = base::android::AttachCurrentThread();
  jobj_ = Java_SurveyUiDelegateBridge_createFromMessage(
      env, reinterpret_cast<int64_t>(this), messages->GetJavaMessageWrapper(),
      window->GetJavaObject());
}

SurveyUiDelegateAndroid::~SurveyUiDelegateAndroid() = default;

void SurveyUiDelegateAndroid::ShowSurveyInvitation(
    JNIEnv* env,
    const JavaParamRef<jobject>& on_accepted_callback,
    const JavaParamRef<jobject>& on_declined_callback,
    const JavaParamRef<jobject>& on_presentation_failed_callback) {
  LOG(WARNING) << "Unimplemented SurveyUiDelegateAndroid::ShowSurveyInvitation";
}

void SurveyUiDelegateAndroid::Dismiss(JNIEnv* env) {
  LOG(WARNING) << "Unimplemented SurveyUiDelegateAndroid::Dismiss";
}

const JavaRef<jobject>& SurveyUiDelegateAndroid::GetJavaObject(
    JNIEnv* env) const {
  return jobj_;
}

}  // namespace hats