package com.jobmineplus.mobile.widgets; import android.util.Log; public class StopWatch { private long startTime; private long lastTime; private long stopTime; private boolean isRunning; public StopWatch() { stopTime = startTime = lastTime = -1; isRunning = false; } public StopWatch(boolean startNow) { stopTime = startTime = lastTime = -1; isRunning = false; if (startNow) { start(); } } public void start() { if (!isRunning) { restart(); } } public void stop() { if (isRunning) { isRunning = false; stopTime = time(); } } public void reset() { long now = time(); if (lastTime == -1) { lastTime = now; } if (stopTime == -1) { stopTime = now; } startTime = now; } public void restart() { reset(); isRunning = true; } public long lap() { lastTime = time(); return elapsed(); } public long last() { return time() - lastTime; } public long elapsed() { if (isRunning) { return time() - startTime; } return stopTime - startTime; } public void printLast() { Log.i("jbmnplsmbl",last() + " ms since last lap"); } public void printLast(String format) { Log.i("jbmnplsmbl",String.format(format, last())); } public void printElapsed(String format) { Log.i("jbmnplsmbl", String.format(format, elapsed())); } public void printElapsed() { Log.i("jbmnplsmbl", elapsed() + " ms has passed"); } private long time() { return (System.nanoTime() / 1000000); } }