use crate::error::*;
use jni::{
objects::{JClass, JString},
signature::JavaType,
strings::JavaStr,
JNIEnv,
};
pub fn jstring_to_string(env: &JNIEnv, jstring: JString) -> Result<String> {
Ok(JavaStr::from_env(env, jstring)?.into())
}
pub fn get_class_name(env: &JNIEnv, cls: JClass) -> Result<String> {
let cclass = env.find_class("java/lang/Class")?;
let get_name = env.get_method_id(cclass, "getName", "()Ljava/lang/String;")?;
let cls_name =
env.call_method_unchecked(cls, get_name, JavaType::Object("".to_owned()), &[])?;
let name = jstring_to_string(env, cls_name.l()?.into())?;
Ok(name)
}