package com.tytv.twiliovideo;

import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.common.MapBuilder;
import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.uimanager.ViewGroupManager;

import java.util.Map;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

public class PreviewManger extends ViewGroupManager<Preview> {
    public static final String REACT_CLASS = "CallPreview";


    private static final int COMMAND_ADD_REMDERER = 1;

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

    @Nonnull
    @Override
    protected Preview createViewInstance(@Nonnull ThemedReactContext reactContext) {
        Preview view = new Preview(reactContext);
        return  view;
    }

    @Nullable
    @Override
    public Map<String, Integer> getCommandsMap() {
        Map<String, Integer> commands = MapBuilder.of(
            "addRenderer",
                COMMAND_ADD_REMDERER
        );
        return  commands;
    }

    @Override
    public void receiveCommand(@Nonnull Preview root, int commandId, @Nullable ReadableArray args) {

        switch (commandId) {
            case COMMAND_ADD_REMDERER:
                addRenderer(root);
                break;
                default:
                    super.receiveCommand(root, commandId, args);
        }
    }


    private void addRenderer(Preview node){
       TwilioRoomView roomView = (TwilioRoomView) node.getParent();
       roomView.setupPreview(node);
    }
}
