package com.rn.s.baidumap.mapview;

import android.graphics.Color;

import com.rn.s.baidumap.view.OverlayPolyline;
import com.baidu.mapapi.model.LatLng;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.uimanager.annotations.ReactProp;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.rn.s.baidumap.R;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by sujialong on 2019/7/9.
 */

public class OverlayPolylineManager extends SimpleViewManager<OverlayPolyline> {

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

    @Override
    protected OverlayPolyline createViewInstance(ThemedReactContext reactContext) {
        return new OverlayPolyline(reactContext);
    }

    @ReactProp(name = "points")
    public void setPoints(OverlayPolyline overlayPolyline, ReadableArray points) {
        List list = new ArrayList();
        List indexList = new ArrayList();
        List textureList = new ArrayList();
        BitmapDescriptor mRedTexture = BitmapDescriptorFactory.fromResource(R.drawable.icon_road_green_arrow);
        for (int i = 0, len = points.size(); i < len; i++){
            ReadableMap item = points.getMap(i);
            LatLng latLng = new LatLng(item.getDouble("lat"), item.getDouble("lng"));
            list.add(latLng);
            //添加纹理图片
            textureList.add(mRedTexture);
            indexList.add(i);
        }
        overlayPolyline.setPoints(list, indexList, textureList);
    }

    @ReactProp(name = "color")
    public void setColor(OverlayPolyline overlayPolyline, String color) {
        overlayPolyline.setColor(Color.parseColor(color));
    }

    @ReactProp(name = "width")
    public void setWidth(OverlayPolyline overlayPolyline, int width) {
        overlayPolyline.setLineWidth(width);
    }

    @ReactProp(name = "dottedLine")
    public void setDottedLine(OverlayPolyline overlayPolyline, boolean dottedLine) {
        overlayPolyline.setDottedLine(dottedLine);
    }
}
