package fr.iutfbleau.pois;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;

import java.util.ArrayDeque;
import java.util.HashMap;
import java.util.Map;

public class Rond extends View {

    private final Paint peinture;
    private Map<Integer, Doigt> coordCercles;
    private int[] couleurs;

    public Rond(Context c, AttributeSet s) {
        super(c, s);

        this.peinture = new Paint();
        this.peinture.setStyle(Paint.Style.FILL);

        this.coordCercles = new HashMap<>();
        int[] colors = {
                Color.MAGENTA,
                Color.GREEN,
                Color.CYAN,
                Color.RED,
                Color.YELLOW
        };

        this.couleurs = colors.clone();
    }

    @Override
    public void onDraw(Canvas c) {
        super.onDraw(c);

        for (Doigt p : this.coordCercles.values()) {
            this.peinture.setColor(p.getCouleur());
            c.drawCircle(p.getX(), p.getY(), 200, this.peinture);
        }
    }

    public void ajouterPoint(int cle, Doigt valeur) {
        this.coordCercles.put(cle, valeur);
    }

    public void retirerPoint(int cle) {
        this.coordCercles.remove(cle);
    }

    public void deplacerPoint(int id, float x, float y) {
        Doigt d = this.coordCercles.get(id);

        if (d != null) {
            d.setX(x);
            d.setY(y);
        }
    }

    public int getCouleurSuivante() {
        int index = coordCercles.size(); // nombre de doigts déjà présents
        return couleurs[index % couleurs.length];
    }

    public int[] getCouleurs() {
        return this.couleurs;
    }

    public Map<Integer, Doigt> getCoordCercles() {
        return this.coordCercles;
    }
}
