package tech.zafrani.companionforpubg.maps.actions;

import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;

import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

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

import tech.zafrani.companionforpubg.maps.GoogleMapController;
import tech.zafrani.companionforpubg.models.spawns.Spawns;
import tech.zafrani.companionforpubg.R;

public class BoatAction extends Action {
    @NonNull
    private final List<LatLng> boatSpawns;
    @NonNull
    private final List<Marker> boatMarkers = new ArrayList<>();
    @NonNull
    private final GoogleMapController mapController;

    public BoatAction(@NonNull final GoogleMapController mapController) {
        this.mapController = mapController;
        this.boatSpawns = Spawns.getBoatLatLngs(mapController.getContext());
    }

    @Override
    protected void onToggleAction() {
        if (shouldShow()) {
            for (final LatLng latLng : this.boatSpawns) {
                final MarkerOptions markerOptions = createMarkerOptions();
                markerOptions.position(latLng);
                this.boatMarkers.add(this.mapController.addMarker(markerOptions));
            }
        } else {
            for (final Marker marker : this.boatMarkers) {
                marker.remove();
            }
            this.boatMarkers.clear();
        }
    }


    @DrawableRes
    @Override
    protected int getMarkerIconRes() {
        return R.drawable.marker_boat;
    }

}