pub fn create_accessibility_node_info<'local, H: ActivationHandler + ?Sized>(
        &mut self,
        activation_handler: &mut H,
        env: &mut JNIEnv<'local>,
        host: &JObject,
        virtual_view_id: jint,
    ) -> JObject<'local> {
        let tree = self.state.get_or_init_tree(activation_handler);
        let tree_state = tree.state();
        let node = if virtual_view_id == HOST_VIEW_ID {
            tree_state.root()
        } else {
            let Some(accesskit_id) = self.node_id_map.get_accesskit_id(virtual_view_id) else {
                return JObject::null();
            };
            let Some(node) = tree_state.node_by_id(accesskit_id) else {
                return JObject::null();
            };
            node
        };

        let node_info_class = env
            .find_class("android/view/accessibility/AccessibilityNodeInfo")
            .unwrap();
        let node_info = env
            .call_static_method(
                &node_info_class,
                "obtain",
                "(Landroid/view/View;I)Landroid/view/accessibility/AccessibilityNodeInfo;",
                &[host.into(), virtual_view_id.into()],
            )
            .unwrap()
            .l()
            .unwrap();

        let package_name = get_package_name(env, host);
        env.call_method(
            &node_info,
            "setPackageName",
            "(Ljava/lang/CharSequence;)V",
            &[(&package_name).into()],
        )
        .unwrap();

        let wrapper = NodeWrapper(&node);
        wrapper.populate_node_info(env, host, &mut self.node_id_map, &node_info);

        let is_accessibility_focus = self.accessibility_focus == Some(virtual_view_id);
        env.call_method(
            &node_info,
            "setAccessibilityFocused",
            "(Z)V",
            &[is_accessibility_focus.into()],
        )
        .unwrap();
        add_action(
            env,
            &node_info,
            if is_accessibility_focus {
                ACTION_CLEAR_ACCESSIBILITY_FOCUS
            } else {
                ACTION_ACCESSIBILITY_FOCUS
            },
        );

        node_info
    }
Create an `AccessibilityNodeInfo` for the AccessKit node
corresponding to the given virtual view ID. Returns null if
there is no such node.

The `host` parameter is the Android view for this adapter.
It must be an instance of `android.view.View` or a subclass.
platforms/android/src/adapter.rs