package dk.itu.eyedroid.statistics;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import android.os.Environment;
import android.util.Log;
/**
* Timer implementation class. Logs timing into a file.
*/
public class Timer {
private static Timer mInstance; // Timer instance
public static final String FILE_NAME = "/EyeDroid"; // File name to store
// statisctics
public static final String TAG = "Statistics"; // Log Tag
public static final String STATISTICS_FULL_PATH = Environment // File path
.getExternalStorageDirectory().getAbsolutePath().concat(FILE_NAME);
private final boolean mFileExists; // Flag
private long mStartTime; // TImer start time
/**
* Timer default constructor. Starts a new timer
*/
private Timer() {
mFileExists = createFile();
mStartTime = System.currentTimeMillis();
if (mFileExists)
Log.i(TAG, "File was created successully");
else
Log.i(TAG, "Could not create file");
}
/**
* Timer singleton instance
*
* @return Timer instance
*/
public static Timer getInstance() {
if (mInstance == null)
mInstance = new Timer();
return mInstance;
}
/**
* Create timing file
*
* @return Is file created?
*/
public boolean createFile() {
File file = new File(STATISTICS_FULL_PATH);
try {
if (!file.exists())
file.createNewFile();
else {
file.delete();
file.createNewFile();
}
if (file.exists())
return true;
else
return false;
} catch (IOException e) {
return false;
}
}
/**
* Computes time and writes it into a file
*
* @param finalTime
* Ending time
*/
synchronized public void computeTimes(long finalTime) {
if (mFileExists) {
File file = new File(STATISTICS_FULL_PATH);
PrintWriter writer = null;
try {
writer = new PrintWriter(new FileWriter(file));
writer.println("Time : " + (finalTime - mStartTime));
writer.close();
} catch (IOException e) {
}
}
}
}