Include nanoTime in filename

System is fast enough that sometimes SystemClock.currentTimeMillis() is duplicated
when used to make a unique filename.

Change-Id: I9454fbb5e10265d36b8e17cba183a1591d52cc7b
main
Kurt Partridge 2013-04-13 18:04:35 -07:00
parent 3970352ea9
commit 125f22dc58
2 changed files with 11 additions and 9 deletions

View File

@ -97,15 +97,17 @@ public class ResearchLogDirectory {
}
}
public File getLogFilePath(final long time) {
return new File(mFilesDir, getUniqueFilename(LOG_FILENAME_PREFIX, time));
public File getLogFilePath(final long time, final long nanoTime) {
return new File(mFilesDir, getUniqueFilename(LOG_FILENAME_PREFIX, time, nanoTime));
}
public File getUserRecordingFilePath(final long time) {
return new File(mFilesDir, getUniqueFilename(USER_RECORDING_FILENAME_PREFIX, time));
public File getUserRecordingFilePath(final long time, final long nanoTime) {
return new File(mFilesDir, getUniqueFilename(USER_RECORDING_FILENAME_PREFIX, time,
nanoTime));
}
private static String getUniqueFilename(final String prefix, final long time) {
return prefix + "-" + time + FILENAME_SUFFIX;
private static String getUniqueFilename(final String prefix, final long time,
final long nanoTime) {
return prefix + "-" + time + "-" + nanoTime + FILENAME_SUFFIX;
}
}

View File

@ -389,7 +389,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
}
if (mMainLogBuffer == null) {
mMainResearchLog = new ResearchLog(mResearchLogDirectory.getLogFilePath(
System.currentTimeMillis()), mLatinIME);
System.currentTimeMillis(), System.nanoTime()), mLatinIME);
final int numWordsToIgnore = new Random().nextInt(NUMBER_OF_WORDS_BETWEEN_SAMPLES + 1);
mMainLogBuffer = new MainLogBuffer(NUMBER_OF_WORDS_BETWEEN_SAMPLES, numWordsToIgnore,
mSuggest) {
@ -420,7 +420,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
private void resetFeedbackLogging() {
mFeedbackLog = new ResearchLog(mResearchLogDirectory.getLogFilePath(
System.currentTimeMillis()), mLatinIME);
System.currentTimeMillis(), System.nanoTime()), mLatinIME);
mFeedbackLogBuffer = new FixedLogBuffer(FEEDBACK_WORD_BUFFER_SIZE);
}
@ -545,7 +545,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
mUserRecordingLog.blockingAbort(RESEARCHLOG_ABORT_TIMEOUT_IN_MS);
}
mUserRecordingFile = mResearchLogDirectory.getUserRecordingFilePath(
System.currentTimeMillis());
System.currentTimeMillis(), System.nanoTime());
mUserRecordingLog = new ResearchLog(mUserRecordingFile, mLatinIME);
mUserRecordingLogBuffer = new LogBuffer();
resetRecordingTimer();