package com.eveningoutpost.dexdrip; import android.app.Activity; import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.view.Menu; import android.view.MenuItem; import com.eveningoutpost.dexdrip.Models.Calibration; import java.util.ArrayList; import java.util.List; import lecho.lib.hellocharts.model.Axis; import lecho.lib.hellocharts.model.Line; import lecho.lib.hellocharts.model.LineChartData; import lecho.lib.hellocharts.model.PointValue; import lecho.lib.hellocharts.util.Utils; import lecho.lib.hellocharts.view.LineChartView; public class CalibrationGraph extends Activity implements NavigationDrawerFragment.NavigationDrawerCallbacks { private String menu_name = "Calibration Graph"; private NavigationDrawerFragment mNavigationDrawerFragment; private LineChartView chart; private LineChartData data; public double start_x = 50; public double end_x = 300; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_calibration_graph); } @Override protected void onResume(){ super.onResume(); mNavigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager().findFragmentById(R.id.navigation_drawer); mNavigationDrawerFragment.setUp(R.id.navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), menu_name, this); setupCharts(); } @Override public void onNavigationDrawerItemSelected(int position) { mNavigationDrawerFragment.swapContext(position); } public void setupCharts() { chart = (LineChartView) findViewById(R.id.chart); List<Calibration> calibrations = Calibration.allForSensor(); List<PointValue> values = new ArrayList<PointValue>(); for (Calibration calibration : calibrations) { values.add(new PointValue((float)calibration.estimate_raw_at_time_of_calibration, (float)calibration.bg)); } Line line = new Line(values); line.setColor(Utils.COLOR_BLUE); line.setHasLines(false); line.setPointRadius(2); line.setHasPoints(true); Calibration calibration = Calibration.last(); List<PointValue> lineValues = new ArrayList<PointValue>(); if(calibration != null) { lineValues.add(new PointValue((float) start_x, (float) (start_x * calibration.slope + calibration.intercept))); lineValues.add(new PointValue((float) end_x, (float) (end_x * calibration.slope + calibration.intercept))); } Line calibrationLine = new Line(lineValues); calibrationLine.setColor(Utils.COLOR_RED); calibrationLine.setHasLines(true); calibrationLine.setHasPoints(false); Axis axisX = new Axis(); Axis axisY = new Axis().setHasLines(true); axisX.setName("Raw Value"); axisY.setName("BG"); List<Line> lines = new ArrayList<Line>(); lines.add(line); lines.add(calibrationLine); data = new LineChartData(lines); data.setAxisXBottom(axisX); data.setAxisYLeft(axisY); chart.setLineChartData(data); } }