@ReactProp(name = "materials")
    public void setMaterials(VRTNode view, @Nullable ReadableArray materials) {
        if (view == null || view.isTornDown() || !view.isAttachedToWindow()) {
            return;
        }
        try {
            // get material manager
            MaterialManager materialManager = getContext().getNativeModule(MaterialManager.class);

            ArrayList<Material> nativeMaterials = new ArrayList<>();
            if (materials != null) {
                for (int i = 0; i < materials.size(); i++) {
                    Material nativeMaterial = materialManager.getMaterial(materials.getString(i));
                    if (materialManager.isVideoMaterial(materials.getString(i))) {
                        if (!(nativeMaterial.getDiffuseTexture() instanceof VideoTexture)) {
                            // Recreate the material with the proper context.
                            if (view.getViroContext() != null) {
                                MaterialWrapper materialWrapper = materialManager.getMaterialWrapper(materials.getString(i));
                                VideoTexture videoTexture = new VideoTexture(view.getViroContext(), materialWrapper.getVideoTextureURI());
                                materialWrapper.recreate(videoTexture);
                                nativeMaterial = materialWrapper.getNativeMaterial();
                            }
                        }
                    }

                    if (nativeMaterial == null) {
                        throw new IllegalArgumentException("Material [" + materials.getString(i) + "] not found. Did you create it?");
                    }

                    nativeMaterials.add(nativeMaterial);
                }
            }
            view.setMaterials(nativeMaterials);
        } catch (Exception e) {
            ViroLog.error(TAG, "Error updating materials property: " + e.getMessage());
        }
    }
Abstract NodeManager for setting {@link VRTNode} Control properties.
NOTE: Always extend from this class for all Node Viro controls.
android/viro_bridge/src/main/java/com/viromedia/bridge/component/node/VRTNodeManager.java