2018-11-20 09:59:08 -08:00
|
|
|
use std::os::raw::{c_char, c_int};
|
|
|
|
|
|
|
|
/// For now, this just returns a magic number
|
|
|
|
#[no_mangle]
|
2018-11-20 23:04:06 -08:00
|
|
|
pub extern "C" fn test_response(_input: *const c_char) -> c_int {
|
2018-11-20 09:59:08 -08:00
|
|
|
let magic_number = 42;
|
|
|
|
magic_number
|
|
|
|
}
|
|
|
|
|
|
|
|
/// JNI interface
|
2018-11-21 05:51:37 -08:00
|
|
|
#[cfg(target_os = "android")]
|
2018-11-20 09:59:08 -08:00
|
|
|
#[allow(non_snake_case)]
|
|
|
|
pub mod android {
|
|
|
|
extern crate jni;
|
|
|
|
|
|
|
|
use self::jni::objects::{JClass, JString};
|
|
|
|
use self::jni::sys::*;
|
2018-11-21 05:51:37 -08:00
|
|
|
use self::jni::JNIEnv;
|
|
|
|
use super::*;
|
2018-11-20 09:59:08 -08:00
|
|
|
|
|
|
|
#[no_mangle]
|
2018-11-21 05:51:37 -08:00
|
|
|
pub unsafe extern "C" fn Java_cash_z_wallet_sdk_jni_JniConverter_getMagicInt(
|
|
|
|
env: JNIEnv,
|
|
|
|
_: JClass,
|
|
|
|
test_input: JString,
|
|
|
|
) -> jint {
|
|
|
|
let jvm_text = env
|
|
|
|
.get_string(test_input)
|
|
|
|
.expect("unable to find text for test input");
|
2018-11-20 09:59:08 -08:00
|
|
|
test_response(jvm_text.as_ptr())
|
|
|
|
}
|
|
|
|
|
|
|
|
#[no_mangle]
|
2018-11-21 05:51:37 -08:00
|
|
|
pub unsafe extern "C" fn Java_cash_z_wallet_sdk_jni_JniConverter_sendComplexData(
|
|
|
|
env: JNIEnv,
|
|
|
|
_: JClass,
|
|
|
|
wallet_data: jbyteArray,
|
|
|
|
) -> jint {
|
2018-11-20 09:59:08 -08:00
|
|
|
let bytes = env.convert_byte_array(wallet_data);
|
|
|
|
bytes.unwrap().len() as i32
|
|
|
|
}
|
|
|
|
}
|