package com.example.fl

import android.content.Context
import android.content.Intent
import android.graphics.Canvas
import android.graphics.Paint
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*
import kotlin.math.cos
import kotlin.math.sin

class MainActivity : AppCompatActivity() {

    private fun lanzarAcercade(){
        val intento = Intent(this, AcercaDe::class.java)
        startActivity(intento)
    }

    override fun onCreateOptionsMenu(menu: Menu): Boolean {
        menuInflater.inflate(R.menu.menu_main, menu)
        return true
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        return when (item.itemId) {
            R.id.action_salir -> {
                finish()
                true
            }
            R.id.acercaDe -> {
                lanzarAcercade()
                true
            }
            else -> super.onOptionsItemSelected(item)
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        bAplicar.setOnClickListener {
            val f1: Int = spinner1.selectedItem.toString().toInt()
            val f2: Int = spinner2.selectedItem.toString().toInt()
            val d: Int = spinner3.selectedItem.toString().toInt()

            class Lienzo(context: Context) : View(context) {
                override fun onDraw(canvas: Canvas) {
                    canvas.drawRGB(0, 0, 0)
                    val XMAX: Int = width
                    val YMAX: Int = height
                    val X0: Int = XMAX / 2
                    val Y0: Int = YMAX / 2
                    val PI = 3.1415
                    val pincel = Paint()
                    pincel.setARGB(255, 255, 255, 0)

                    for (t in 1..10000) {
                        var x = 300 * sin(f1 * 1800 * PI * t + d * (PI / 6))
                        var y = 300 * cos(f2 * 1800 * PI * t)

                        canvas.drawPoint((X0 + x).toFloat(), (Y0 + y).toFloat(), pincel)
                    }

                }

            }
            val fondo = Lienzo(this)
            RLLienzo.addView(fondo)
            Toast.makeText(this, "Proceso terminado...", Toast.LENGTH_LONG).show()
        }
    }
}