| // Copyright 2016 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 "base/android/callback_android.h" | |
| #include "base/android/jni_array.h" | |
| #include "base/android/jni_string.h" | |
| #include "base/android/scoped_java_ref.h" | |
| #include "jni/Callback_jni.h" | |
| namespace base { | |
| namespace android { | |
| void RunObjectCallbackAndroid(const JavaRef<jobject>& callback, | |
| const JavaRef<jobject>& arg) { | |
| Java_Helper_onObjectResultFromNative(AttachCurrentThread(), callback, arg); | |
| } | |
| void RunBooleanCallbackAndroid(const JavaRef<jobject>& callback, bool arg) { | |
| Java_Helper_onBooleanResultFromNative(AttachCurrentThread(), callback, | |
| static_cast<jboolean>(arg)); | |
| } | |
| void RunIntCallbackAndroid(const JavaRef<jobject>& callback, int arg) { | |
| Java_Helper_onIntResultFromNative(AttachCurrentThread(), callback, arg); | |
| } | |
| void RunStringCallbackAndroid(const JavaRef<jobject>& callback, | |
| const std::string& arg) { | |
| JNIEnv* env = AttachCurrentThread(); | |
| ScopedJavaLocalRef<jstring> java_string = ConvertUTF8ToJavaString(env, arg); | |
| Java_Helper_onObjectResultFromNative(env, callback, java_string); | |
| } | |
| void RunByteArrayCallbackAndroid(const JavaRef<jobject>& callback, | |
| const std::vector<uint8_t>& arg) { | |
| JNIEnv* env = AttachCurrentThread(); | |
| ScopedJavaLocalRef<jbyteArray> j_bytes = ToJavaByteArray(env, arg); | |
| Java_Helper_onObjectResultFromNative(env, callback, j_bytes); | |
| } | |
| } // namespace android | |
| } // namespace base |