blob: 46f7b14fb5df4db54a4d1acef2e9f01de237ca14 [file] [log] [blame]
// Copyright 2021 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.
#include "components/autofill_assistant/browser/java_tts_controller.h"
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
#include "chrome/android/features/autofill_assistant/test_support_jni_headers/AutofillAssistantTestTtsController_jni.h"
namespace autofill_assistant {
static jlong JNI_AutofillAssistantTestTtsController_CreateNative(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& java_tts_controller) {
return reinterpret_cast<jlong>(new TtsControllerAndroid(java_tts_controller));
}
TtsControllerAndroid::TtsControllerAndroid(
const base::android::JavaParamRef<jobject>& java_tts_controller)
: AutofillAssistantTtsController(nullptr),
java_tts_controller_(java_tts_controller) {}
TtsControllerAndroid::~TtsControllerAndroid() = default;
void TtsControllerAndroid::Speak(const std::string& message,
const std::string& locale) {
JNIEnv* env = base::android::AttachCurrentThread();
Java_AutofillAssistantTestTtsController_speak(
env, java_tts_controller_,
base::android::ConvertUTF8ToJavaString(env, message),
base::android::ConvertUTF8ToJavaString(env, locale));
}
void TtsControllerAndroid::Stop() {
JNIEnv* env = base::android::AttachCurrentThread();
Java_AutofillAssistantTestTtsController_stop(env, java_tts_controller_);
}
void TtsControllerAndroid::SimulateTtsEvent(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& jcaller,
jint eventType) {
OnTtsEvent(
/* utterance= */ nullptr, static_cast<content::TtsEventType>(eventType),
/* char_index= */ 0, /* char_length= */ 0,
/* error_message= */ std::string());
}
} // namespace autofill_assistant