mirror of
https://git.ethanthesleepy.one/ethanaobrien/ew
synced 2026-07-12 08:42:20 +08:00
Update jni crate
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
use jni::JNIEnv;
|
||||
use jni::objects::{JClass};
|
||||
use jni::sys::{jstring, jboolean};
|
||||
use jni::{Env, EnvUnowned};
|
||||
use jni::objects::{JClass, JString};
|
||||
use jni::sys::jstring;
|
||||
use jni::errors::ThrowRuntimeExAndDefault;
|
||||
use std::thread;
|
||||
use jni::objects::JString;
|
||||
use crate::{run_server, stop_server};
|
||||
use std::os::raw::c_char;
|
||||
|
||||
@@ -27,34 +27,51 @@ macro_rules! log_to_logcat {
|
||||
}
|
||||
|
||||
#[unsafe(no_mangle)]
|
||||
extern "C" fn Java_one_ethanthesleepy_androidew_BackgroundService_startServer<'local>(
|
||||
mut env: JNIEnv<'local>,
|
||||
pub extern "system" fn Java_one_ethanthesleepy_androidew_BackgroundService_startServer<'local>(
|
||||
mut unowned_env: EnvUnowned<'local>,
|
||||
_class: JClass<'local>,
|
||||
data_path: JString<'local>,
|
||||
easter: jboolean
|
||||
easter: bool,
|
||||
) -> jstring {
|
||||
crate::runtime::set_easter_mode(easter != 0);
|
||||
crate::runtime::set_easter_mode(easter);
|
||||
|
||||
let data_path: String = env.get_string(&data_path).unwrap().into();
|
||||
crate::runtime::update_data_path(&data_path);
|
||||
unowned_env
|
||||
.with_env(|env: &mut Env<'local>| -> jni::errors::Result<jstring> {
|
||||
let data_path: String = data_path.to_string();
|
||||
crate::runtime::update_data_path(&data_path);
|
||||
|
||||
let output = env.new_string(String::from("Azunyannnn~")).unwrap();
|
||||
thread::spawn(|| {
|
||||
run_server(true).unwrap();
|
||||
});
|
||||
log_to_logcat!("ew", "running");
|
||||
output.into_raw()
|
||||
let output = JString::from_str(env, "Azunyannnn~")?;
|
||||
|
||||
thread::spawn(|| {
|
||||
run_server(true).unwrap();
|
||||
});
|
||||
log_to_logcat!("ew", "running");
|
||||
|
||||
Ok(output.into_raw())
|
||||
})
|
||||
.resolve::<ThrowRuntimeExAndDefault>()
|
||||
}
|
||||
|
||||
#[unsafe(no_mangle)]
|
||||
extern "C" fn Java_one_ethanthesleepy_androidew_BackgroundService_stopServer<'local>(env: JNIEnv<'local>, _class: JClass<'local>) -> jstring {
|
||||
pub extern "system" fn Java_one_ethanthesleepy_androidew_BackgroundService_stopServer<'local>(
|
||||
mut unowned_env: EnvUnowned<'local>,
|
||||
_class: JClass<'local>,
|
||||
) -> jstring {
|
||||
stop_server();
|
||||
let output = env.new_string(String::from("I like Yui!")).unwrap();
|
||||
output.into_raw()
|
||||
}
|
||||
|
||||
unowned_env
|
||||
.with_env(|env: &mut Env<'local>| -> jni::errors::Result<jstring> {
|
||||
let output = JString::from_str(env, "I like Yui!")?;
|
||||
Ok(output.into_raw())
|
||||
})
|
||||
.resolve::<ThrowRuntimeExAndDefault>()
|
||||
}
|
||||
|
||||
#[unsafe(no_mangle)]
|
||||
extern "C" fn Java_one_ethanthesleepy_androidew_BackgroundService_setEasterMode<'local>(_env: JNIEnv<'local>, _class: JClass<'local>, easter: jboolean) {
|
||||
crate::runtime::set_easter_mode(easter != 0);
|
||||
pub extern "system" fn Java_one_ethanthesleepy_androidew_BackgroundService_setEasterMode<'local>(
|
||||
_unowned_env: EnvUnowned<'local>,
|
||||
_class: JClass<'local>,
|
||||
easter: bool,
|
||||
) {
|
||||
crate::runtime::set_easter_mode(easter);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user