package edu.whs.spin2018.baoapp.utilities;

import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.graphics.Color;
import android.view.View;
import android.widget.TextView;

import edu.whs.spin2018.baoapp.views.spiel.PositionAufBildschirm;
import edu.whs.spin2018.baoapp.views.spiel.SteinView;

public final class ViewUtils {

    private ViewUtils() {

    }

    public static void setzeSchatten(TextView tv) {
        tv.setShadowLayer(6, -4, 4, Color.BLACK);
    }

    public static Animator bewegeSteinZuPosition(SteinView stein, PositionAufBildschirm zielPos) {
        PositionAufBildschirm steinPosAufBildschirm = stein.gibPositionAufBildschirm();

        zielPos.setX(zielPos.getX() - stein.gibPivotX());
        zielPos.setY(zielPos.getY() - stein.gibPivotY());

        /*
         * Das Multiplizieren mit 1.5 soll dem Problem, welches in der MuldenView beschrieben ist
         * entgegenwirken
         */
        PropertyValuesHolder posX = PropertyValuesHolder.ofFloat(View.X, steinPosAufBildschirm.getX(),
                zielPos.getX());

        PropertyValuesHolder posY = PropertyValuesHolder.ofFloat(View.Y, steinPosAufBildschirm.getY(),
                zielPos.getY());

        stein.aktualisierePositionaufBildschirmNachAnimation(zielPos);

        return ObjectAnimator.ofPropertyValuesHolder(stein.gibSteinBild(), posX, posY);
    }
}
