public void redrawGraphs() {
    long currentTime = System.currentTimeMillis();

    trimData(currentTime, 60);
    // double maxY=1;

    ArrayList<DataPoint> IcmpDataPts = new ArrayList<DataPoint>();
    for (int i = IcmpInformationArray.size() - 1; i >= 0; i--) {
      PingInfo currentInfo = IcmpInformationArray.get(i);
      if (currentInfo != null) {
        if (currentInfo.isSuccess()) {
          IcmpDataPts.add(
              new DataPoint(
                  currentInfo.timeDifferenceSeconds(currentTime), currentInfo.getPingTimeSec()));
          // if (currentInfo.getPingTimeSec()>maxY) maxY=currentInfo.getPingTimeSec();
        }
      }
    }
    icmpLineSeries.resetData(IcmpDataPts.toArray(new DataPoint[0]));

    ArrayList<DataPoint> HttpDataPts = new ArrayList<DataPoint>();
    for (int i = HttpInformationArray.size() - 1; i >= 0; i--) {
      PingInfo currentInfo = HttpInformationArray.get(i);
      if (currentInfo != null) {
        if (currentInfo.isSuccess()) {
          HttpDataPts.add(
              new DataPoint(
                  currentInfo.timeDifferenceSeconds(currentTime), currentInfo.getPingTimeSec()));
          // if (currentInfo.getPingTimeSec()>maxY) maxY=currentInfo.getPingTimeSec();
        }
      }
    }
    httpLineSeries.resetData(HttpDataPts.toArray(new DataPoint[0]));

    ArrayList<DataPoint> HttpsDataPts = new ArrayList<DataPoint>();
    for (int i = HttpsInformationArray.size() - 1; i >= 0; i--) {
      PingInfo currentInfo = HttpsInformationArray.get(i);
      if (currentInfo != null) {
        if (currentInfo.isSuccess()) {
          HttpsDataPts.add(
              new DataPoint(
                  currentInfo.timeDifferenceSeconds(currentTime), currentInfo.getPingTimeSec()));
          // if (currentInfo.getPingTimeSec()>maxY) maxY=currentInfo.getPingTimeSec();
        }
      }
    }
    httpsLineSeries.resetData(HttpsDataPts.toArray(new DataPoint[0]));

    // gv.getViewport().setMaxY(maxY);

  }
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    Log.i(LOG_TAG, "---New Session---");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    icmpPingSettings = new PingSettings();
    icmpPingSettings.setTimeout(1000);
    icmpPingSettings.setRepeat(3000);
    icmpPingSettings.setDomain("www.google.com");
    icmpPingSettings.setSlow(300);

    httpPingSettings = new PingSettings();
    httpPingSettings.setTimeout(1500);
    httpPingSettings.setRepeat(3000);
    httpPingSettings.setDomain("www.google.com");
    httpPingSettings.setSlow(500);

    httpsPingSettings = new PingSettings();
    httpsPingSettings.setTimeout(2000);
    httpsPingSettings.setRepeat(3000);
    httpsPingSettings.setDomain("www.google.com");
    httpsPingSettings.setSlow(1000);

    pingReceiver = new PingReceiver();

    gv = (GraphView) findViewById(R.id.graph_view);

    gv.setTitle("Ping Times");
    gv.getGridLabelRenderer().setHighlightZeroLines(true);
    gv.getGridLabelRenderer().setPadding(36);

    icmpLineSeries = new PointsGraphSeries<DataPoint>();
    icmpLineSeries.setColor(Color.parseColor("#A00000"));
    icmpLineSeries.setSize(10);
    icmpLineSeries.setTitle("ICMP");
    gv.addSeries(icmpLineSeries);

    httpLineSeries = new PointsGraphSeries<DataPoint>();
    httpLineSeries.setColor(Color.parseColor("#00A000"));
    httpLineSeries.setSize(10);
    httpLineSeries.setTitle("HTTP");
    gv.addSeries(httpLineSeries);

    httpsLineSeries = new PointsGraphSeries<DataPoint>();
    httpsLineSeries.setColor(Color.parseColor("#0000A0"));
    httpsLineSeries.setSize(10);
    httpsLineSeries.setTitle("HTTPS");
    gv.addSeries(httpsLineSeries);

    gv.getLegendRenderer().setVisible(true);
    gv.getLegendRenderer().setAlign(LegendRenderer.LegendAlign.MIDDLE);

    gv.getViewport().setXAxisBoundsManual(true);
    gv.getViewport().setMinX(0);
    gv.getViewport().setMaxX(60);

    // gv.getViewport().setYAxisBoundsManual(true);
    // gv.getViewport().setMinY(0);
    // gv.getViewport().setMaxY(1);

    alertToggle = (CheckBox) findViewById(R.id.alert_toggle);
    alertThresh = (EditText) findViewById(R.id.alert_input);
    alertToggle.setOnClickListener(this);

    icmp_set_btn = (Button) findViewById(R.id.icmp_settings);
    icmp_start_btn = (Button) findViewById(R.id.icmp_start);
    icmp_end_btn = (Button) findViewById(R.id.icmp_end);
    icmp_information = (TextView) findViewById(R.id.icmp_information);
    icmp_result = (TextView) findViewById(R.id.icmp_result);
    icmp_icon = (ImageView) findViewById(R.id.icmp_icon);

    icmp_start_btn.setOnClickListener(this);
    icmp_end_btn.setOnClickListener(this);
    icmp_set_btn.setOnClickListener(this);

    http_set_btn = (Button) findViewById(R.id.http_settings);
    http_start_btn = (Button) findViewById(R.id.http_start);
    http_end_btn = (Button) findViewById(R.id.http_end);
    http_information = (TextView) findViewById(R.id.http_information);
    http_result = (TextView) findViewById(R.id.http_result);
    http_icon = (ImageView) findViewById(R.id.http_icon);

    http_set_btn.setOnClickListener(this);
    http_start_btn.setOnClickListener(this);
    http_end_btn.setOnClickListener(this);

    https_set_btn = (Button) findViewById(R.id.https_settings);
    https_start_btn = (Button) findViewById(R.id.https_start);
    https_end_btn = (Button) findViewById(R.id.https_end);
    https_information = (TextView) findViewById(R.id.https_information);
    https_result = (TextView) findViewById(R.id.https_result);
    https_icon = (ImageView) findViewById(R.id.https_icon);

    https_set_btn.setOnClickListener(this);
    https_start_btn.setOnClickListener(this);
    https_end_btn.setOnClickListener(this);

    endHTTP();
    endHTTPS();
    endICMP();

    updateInformation();
  }