Store the TTS object in the struct.

This commit is contained in:
Nolan Darilek 2020-12-29 15:47:11 -06:00
parent da8260cba8
commit 84926ea110
1 changed files with 13 additions and 21 deletions

View File

@ -27,13 +27,8 @@ impl Android {
let id = BackendId::Android(*backend_id); let id = BackendId::Android(*backend_id);
*backend_id += 1; *backend_id += 1;
let native_activity = ndk_glue::native_activity(); let native_activity = ndk_glue::native_activity();
let mut vm = VM.lock().unwrap();
if vm.is_none() {
let vm_ptr = native_activity.vm(); let vm_ptr = native_activity.vm();
let new_vm = unsafe { jni::JavaVM::from_raw(vm_ptr) }?; let vm = unsafe { jni::JavaVM::from_raw(vm_ptr) }?;
*vm = Some(new_vm);
}
if let Some(vm) = &*vm {
let env = vm.attach_current_thread()?; let env = vm.attach_current_thread()?;
let tts = env.new_object( let tts = env.new_object(
"android/speech/tts/TextToSpeech", "android/speech/tts/TextToSpeech",
@ -45,9 +40,6 @@ impl Android {
)?; )?;
let tts = env.new_global_ref(tts)?; let tts = env.new_global_ref(tts)?;
Ok(Self { id, tts }) Ok(Self { id, tts })
} else {
Err(Error::NoneError)
}
} }
} }