docs: @Override
      public <OUTPUT extends GVRHybridObject, INTER> void registerCallback(GVRContext gvrContext,
              Class<OUTPUT> outClass,
              CancelableCallback<OUTPUT> callback, GVRAndroidResource request,
              int priority) {
          @SuppressWarnings("unchecked")
          AsyncLoaderFactory<OUTPUT, INTER> factory = (AsyncLoaderFactory<OUTPUT, INTER>) getFactories().get(outClass);
          if (factory == null) {
              callback.failed(new IOException("Cannot find loader factory"), request);
              return;
          }
  
          AsyncLoader<OUTPUT, INTER> loader =
                  factory.threadProc(gvrContext, request, callback, priority);
  
          // Run the loader synchronously
          loader.run();
      }