public Datapoint getVisibleLastDatapointLocking() { Datapoint last = null; waitForLock(); for (int i = 0; i < mSeries.size(); i++) { TimeSeries ts = mSeries.get(i); if (ts != null && ts.isEnabled() == true) { Datapoint d = ts.getLastVisible(); if (last == null) last = d; else if (d.mMillis > last.mMillis) last = d; } } unlock(); return last; }