package com.awesomeproject; 
import javax.annotation.Nonnull;

import android.graphics.PointF;
import android.view.View;

import com.facebook.react.common.MapBuilder;
import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.uimanager.ViewGroupManager;
import com.facebook.react.uimanager.annotations.ReactProp;
import com.facebook.react.bridge.ReadableMap;
import com.navigine.idl.java.Point;
import android.util.Log;
import com.navigine.idl.java.LocationPoint;

import com.awesomeproject.view.NavigineIconMapObject;
public class IconMapObjectManager extends ViewGroupManager<NavigineIconMapObject> {
    public static final String REACT_CLASS = "NavigineIconMapObject";
    IconMapObjectManager() {}

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

    @Nonnull
    @Override
    public NavigineIconMapObject createViewInstance(@Nonnull ThemedReactContext context) {
        return new NavigineIconMapObject(context);
    }
    @Override
    public void addView(NavigineIconMapObject parent, View child, int index) {
        parent.addChildView(child, index);
        super.addView(parent, child, index);
    }

    @Override
    public void removeViewAt(NavigineIconMapObject parent, int index) {
        parent.removeChildView(index);
        super.removeViewAt(parent, index);
    }
    private NavigineIconMapObject castToIconMapObjectView(View view) {
        return (NavigineIconMapObject) view;
    }
        // props
        @ReactProp(name = "objectPosition")
        public void setPosition(View view, ReadableMap iconPoint) {
            if (iconPoint != null) {
                double x = iconPoint.getDouble("x");
                double y = iconPoint.getDouble("y");
                int locationId = iconPoint.getInt("locationId");
                int sublocationId = iconPoint.getInt("sublsocationId");
                LocationPoint locationPoint = new LocationPoint(new Point((float)x, (float)y), locationId, sublocationId);
                castToIconMapObjectView(view).setPosition(locationPoint);
            }
        }
}
