| // 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 |