package net.mitloehner.flocki;

import android.graphics.*;
import net.mitloehner.flocki.R;
import android.content.Context;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;

public class DrawView extends View {
    Paint paint = new Paint();
    Paint p2 = new Paint();
    int w, h, last = 1;
    Flocki flocki;
    Bitmap flocki1 = BitmapFactory.decodeResource(getResources(), R.drawable.flocki1);
    Bitmap flocki2 = BitmapFactory.decodeResource(getResources(), R.drawable.flocki2);
    Matrix mirr = new Matrix();
    Bitmap flocki1l, flocki2l;

    public DrawView(Context context, Flocki f) {
        super(context);
        paint.setColor(Color.GREEN);
        p2.setColor(Color.BLACK);
        flocki = f;
        mirr.preScale(-1.0f, 1.0f);
        flocki1l = Bitmap.createBitmap(flocki1, 0, 0, flocki1.getWidth(), flocki1.getHeight(), mirr, false);
        flocki2l = Bitmap.createBitmap(flocki2, 0, 0, flocki1.getWidth(), flocki1.getHeight(), mirr, false);
    }

    public void init() {
        w = getMeasuredWidth();
        h = getMeasuredHeight();
    }

    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawRect(0, h, w, 0, paint);
        // canvas.drawCircle(flocki.x, flocki.y, 3, p2);

        if (last == 1) {
            canvas.drawBitmap((flocki.dx>0) ? flocki1 : flocki1l, flocki.x, flocki.y, null);
            last = 2;
        } else {
            canvas.drawBitmap((flocki.dx>0) ? flocki2 : flocki2l, flocki.x, flocki.y, null);
            last = 1;
        }
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        float x = event.getX();
        float y = event.getY();

        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                flocki.target(x, y);
                // show("x/y: " + x + "/" + y);
                break;
            case MotionEvent.ACTION_MOVE:
                break;
            case MotionEvent.ACTION_UP:
                break;
        }
        return true;
    }

    public void show(String s) {
        Toast.makeText(getContext(), s, 2).show();
    }
}