package com.reactnativezoom.videosdk;

import android.content.Context;

import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;

import us.zoom.sdk.ZoomVideoSDKCameraShareView;
import us.zoom.sdk.ZoomVideoSDK;

public class RNZoomCameraShareViewManager extends SimpleViewManager<ZoomVideoSDKCameraShareView>  {

  private final ReactApplicationContext reactContext;
  public static RNZoomCameraShareViewManager instance;
  public static ZoomVideoSDKCameraShareView cameraView;

  public RNZoomCameraShareViewManager(ReactApplicationContext reactContext) {
    this.reactContext = reactContext;
  }

  public static RNZoomCameraShareViewManager createInstance(ReactApplicationContext reactContext) {
    if (instance == null) {
      instance = new RNZoomCameraShareViewManager(reactContext);
    }
    return instance;
  }

  public static RNZoomCameraShareViewManager getInstance() {
    return instance;
  }

  @Override
  public String getName() {
    return "RNZoomCameraShareView";
  }

  @Override
  protected ZoomVideoSDKCameraShareView createViewInstance(ThemedReactContext themedReactContext) {
    this.reactContext.getCurrentActivity().runOnUiThread(new Runnable() {
      @Override
      public void run() {
        cameraView = new ZoomVideoSDKCameraShareView(themedReactContext);
        ZoomVideoSDK.getInstance().getShareHelper().startShareCamera(cameraView);
      }
    });
    return cameraView;
  }
}
