polyhorn_android_sys/
bitmap_factory.rs1use jni::objects::JValue;
2
3use super::{Bitmap, Env, Object};
4
5pub struct BitmapFactory;
6
7impl BitmapFactory {
8 pub fn decode_byte_array(env: &Env, bytes: &[u8]) -> Result<Bitmap, String> {
9 unsafe {
10 let reference = env.call_static_method(
11 "android/graphics/BitmapFactory",
12 "decodeByteArray",
13 "([BII)Landroid/graphics/Bitmap;",
14 &[
15 JValue::Object(env.byte_array(bytes)),
16 JValue::Int(0),
17 JValue::Int(bytes.len() as i32),
18 ],
19 );
20 Ok(Bitmap::from_reference(
21 env.retain(env.assume_object(reference)),
22 ))
23 }
24 }
25}