package com.rhinemann.project;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;

import com.jjoe64.graphview.series.BarGraphSeries;
import com.jjoe64.graphview.GraphView;
import com.jjoe64.graphview.series.DataPoint;
import com.jjoe64.graphview.DefaultLabelFormatter;

public class Graph extends AppCompatActivity {

    Button Home;
//    BarChart Chart;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_graph);

        GraphView Graph = findViewById(R.id.Graph);

        final String[] XAxis = {"Фізика", "Математика", "Електро- та \nрадіотехніка", "Техніка", "Хімія", "Біологія", "Медицина", "Географія", "Історія", "Філологія", "Мистецтво", "Педагогіка", "Психологія, \nфілософія", "Бізнес", "Сфера \nобслуговувуння", "Військова \nсправа", "Спорт"};

        int[] Data = getIntent().getIntArrayExtra("profileAnswers");

        BarGraphSeries<DataPoint> series = new BarGraphSeries<>();

        for (int i=0; i<17; i++){
            assert Data != null;
            series.appendData(new DataPoint(i*2, Data[i]),true,18);
        }

        series.appendData(new DataPoint(17*2, 0),true,18);

        series.setColor(R.color.colorPrimary);
        series.setSpacing(20);//Spacing
        series.setDrawValuesOnTop(true);// draw values on top

        Graph.addSeries(series);

        Graph.setTitle("Орієнтовний графік");
        Graph.setTitleTextSize(50);
        Graph.setTitleColor(R.color.colorAccent);

        Graph.getLegendRenderer().setVisible(false);


        // set manual Y bounds
        Graph.getViewport().setYAxisBoundsManual(true);
        Graph.getViewport().setMinY(0);
        Graph.getViewport().setMaxY(15);

        // set manual X bounds
        Graph.getViewport().setXAxisBoundsManual(true);
        Graph.getViewport().setMinX(0);
        Graph.getViewport().setMaxX(7);

        //set horizontal scrolling
        Graph.getViewport().setScrollable(true);

        Graph.getGridLabelRenderer().setTextSize(30);
        Graph.getGridLabelRenderer().reloadStyles();
        Graph.getGridLabelRenderer().setPadding(10);

        Graph.getGridLabelRenderer().setLabelFormatter(new DefaultLabelFormatter(){
            @Override
            public String formatLabel(double value, boolean isValueX) {
                if (isValueX){
                    return (XAxis[(int) (value/2)]);
                } else {
                    return super.formatLabel(value, false);
                }
            }
        });

        Home = findViewById(R.id.home);

        Home.setOnClickListener(v -> {
            Intent intent = new Intent(Graph.this, HomeScreen.class);
            startActivity(intent);
        });
    }
}