package com.syan.agora;

import android.graphics.Color;
import android.util.Log;
import android.view.SurfaceView;
import android.view.View;
import android.widget.FrameLayout;

import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.uimanager.annotations.ReactProp;

/**
 * Created by DB on 2017/6/23.
 */

public class AgoraViewManager extends SimpleViewManager<AgoraViewContainer> {

  public static final String REACT_CLASS = "RCTAgoraVideoView";

  @Override
  public String getName() {
    return REACT_CLASS;
  }

  @Override
  protected AgoraViewContainer createViewInstance(ThemedReactContext reactContext) {
    Log.d("RtcEngine", "createViewInstance ");
    //    AgoraVideoView agoraVideoView = new AgoraVideoView(reactContext);
    //    maskView = new View(reactContext);
    //    maskView.setBackgroundColor(Color.RED);
    //    FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
    //    maskView.setLayoutParams(lp);
    //    agoraVideoView.addView(maskView);
    //    maskView.setVisibility(View.GONE);
    return new AgoraViewContainer(reactContext);
  }

  @ReactProp(name = "mode")
  public void setRenderMode(final AgoraViewContainer agoraVideoView, Integer renderMode) {
    Log.d("RtcEngine", "setRenderMode setRenderMode");
    agoraVideoView.setRenderMode(renderMode);
  }

  @ReactProp(name = "showLocalVideo")
  public void setShowLocalVideo(final AgoraViewContainer agoraVideoView, boolean showLocalVideo) {
    Log.d("RtcEngine", "setShowLocalVideo  isShowMask : " + agoraVideoView.isShowMask());
    //    maskView.setVisibility(View.VISIBLE);
    agoraVideoView.setShowLocalVideo(showLocalVideo);
  }

  @ReactProp(name = "zOrderMediaOverlay")
  public void setZOrderMediaOverlay(final AgoraViewContainer agoraVideoView, boolean zOrderMediaOverlay) {
    Log.d("RtcEngine", "zOrderMediaOverlay");
    agoraVideoView.setZOrderMediaOverlay(zOrderMediaOverlay);
  }

  @ReactProp(name = "showMask")
  public void setShowMask(final AgoraViewContainer agoraVideoView, boolean showMask) {
    Log.d("RtcEngine", "setShowMask : " + showMask);
    agoraVideoView.setShowMask(showMask);
  }

  @ReactProp(name = "maskDuration")
  public void setMaskDuration(final AgoraViewContainer agoraVideoView, Integer maskDuration) {
    Log.d("RtcEngine", "setMaskDuration : " + maskDuration);
    agoraVideoView.setMaskDuration(maskDuration);
  }

  @ReactProp(name = "remoteUid")
  public void setRemoteUid(final AgoraViewContainer agoraVideoView, final int remoteUid) {
    agoraVideoView.setRemoteUid(remoteUid);
  }

}
