aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/research/ResearchLogger.java
diff options
context:
space:
mode:
authorKurt Partridge <kep@google.com>2012-08-10 14:21:18 -0700
committerKurt Partridge <kep@google.com>2012-12-17 17:08:47 -0800
commit48160f9d847c0246883bc81599613b1ebe2652a6 (patch)
tree990131d842561133d262c68cef15f1eedc70665e /java/src/com/android/inputmethod/research/ResearchLogger.java
parent3370dc82370f5397bafdaeba395e3dfc8b8adf3a (diff)
downloadlatinime-48160f9d847c0246883bc81599613b1ebe2652a6.tar.gz
latinime-48160f9d847c0246883bc81599613b1ebe2652a6.tar.xz
latinime-48160f9d847c0246883bc81599613b1ebe2652a6.zip
[Rlog3] improve stat recording
Change-Id: Ie3b70e6eadc2a9af5ef45ddfad6a3398cea7bfe8
Diffstat (limited to 'java/src/com/android/inputmethod/research/ResearchLogger.java')
-rw-r--r--java/src/com/android/inputmethod/research/ResearchLogger.java56
1 files changed, 31 insertions, 25 deletions
diff --git a/java/src/com/android/inputmethod/research/ResearchLogger.java b/java/src/com/android/inputmethod/research/ResearchLogger.java
index 9ea46eeb9..0c94abc24 100644
--- a/java/src/com/android/inputmethod/research/ResearchLogger.java
+++ b/java/src/com/android/inputmethod/research/ResearchLogger.java
@@ -565,10 +565,8 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
mFeedbackLogBuffer.clear();
}
final LogUnit feedbackLogUnit = new LogUnit();
- final Object[] values = {
- feedbackContents
- };
- feedbackLogUnit.addLogStatement(LOGSTATEMENT_FEEDBACK, values, SystemClock.uptimeMillis());
+ feedbackLogUnit.addLogStatement(LOGSTATEMENT_FEEDBACK, SystemClock.uptimeMillis(),
+ feedbackContents);
mFeedbackLogBuffer.shiftIn(feedbackLogUnit);
publishLogBuffer(mFeedbackLogBuffer, mFeedbackLog, true /* isIncludingPrivateData */);
mFeedbackLog.close(new Runnable() {
@@ -653,19 +651,14 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
}
}
- private static final Object[] NULL_VALUES = {};
-
/**
* Buffer a research log event, flagging it as privacy-sensitive.
*/
private synchronized void enqueueEvent(LogStatement logStatement, Object... values) {
- if (values == null) {
- values = NULL_VALUES;
- }
assert values.length == logStatement.mKeys.length;
if (isAllowedToLog()) {
final long time = SystemClock.uptimeMillis();
- mCurrentLogUnit.addLogStatement(logStatement, values, time);
+ mCurrentLogUnit.addLogStatement(logStatement, time, values);
}
}
@@ -701,11 +694,8 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
/* package for test */ void publishLogBuffer(final LogBuffer logBuffer,
final ResearchLog researchLog, final boolean isIncludingPrivateData) {
final LogUnit openingLogUnit = new LogUnit();
- final Object[] values = {
- isIncludingPrivateData
- };
- openingLogUnit.addLogStatement(LOGSTATEMENT_LOG_SEGMENT_OPENING, values,
- SystemClock.uptimeMillis());
+ openingLogUnit.addLogStatement(LOGSTATEMENT_LOG_SEGMENT_OPENING, SystemClock.uptimeMillis(),
+ isIncludingPrivateData);
researchLog.publish(openingLogUnit, true /* isIncludingPrivateData */);
LogUnit logUnit;
while ((logUnit = logBuffer.shiftOut()) != null) {
@@ -716,7 +706,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
researchLog.publish(logUnit, isIncludingPrivateData);
}
final LogUnit closingLogUnit = new LogUnit();
- closingLogUnit.addLogStatement(LOGSTATEMENT_LOG_SEGMENT_CLOSING, NULL_VALUES,
+ closingLogUnit.addLogStatement(LOGSTATEMENT_LOG_SEGMENT_CLOSING,
SystemClock.uptimeMillis());
researchLog.publish(closingLogUnit, true /* isIncludingPrivateData */);
}
@@ -732,19 +722,21 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
return false;
}
- private static final LogStatement LOGSTATEMENT_COMMIT_AUTOSPACE =
- new LogStatement("CommitAutospace", true, false);
- private void onWordComplete(final String word, final long maxTime, final boolean isPartial) {
- Log.d(TAG, "onWordComplete: " + word);
+ private static final LogStatement LOGSTATEMENT_COMMIT_RECORD_SPLIT_WORDS =
+ new LogStatement("recordSplitWords", true, false);
+ private void onWordComplete(final String word, final long maxTime, final boolean isSplitWords) {
if (word != null && word.length() > 0 && hasLetters(word)) {
mCurrentLogUnit.setWord(word);
- mStatistics.recordWordEntered();
+ final boolean isDictionaryWord = mDictionary != null
+ && mDictionary.isValidWord(word);
+ mStatistics.recordWordEntered(isDictionaryWord);
}
final LogUnit newLogUnit = mCurrentLogUnit.splitByTime(maxTime);
enqueueCommitText(word);
- if (isPartial) {
- enqueueEvent(LOGSTATEMENT_COMMIT_AUTOSPACE, NULL_VALUES);
+ if (isSplitWords) {
+ enqueueEvent(LOGSTATEMENT_COMMIT_RECORD_SPLIT_WORDS);
enqueueCommitText(" ");
+ mStatistics.recordSplitWords();
}
commitCurrentLogUnit();
mCurrentLogUnit = newLogUnit;
@@ -1205,11 +1197,23 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
getInstance().enqueueEvent(LOGSTATEMENT_USER_TIMESTAMP);
}
+ private static final LogStatement LOGSTATEMENT_LATINIME_ONENDBATCHINPUT =
+ new LogStatement("LatinIMEOnEndBatchInput", true, false, "enteredText",
+ "enteredWordPos");
+ public static void latinIME_onEndBatchInput(final CharSequence enteredText,
+ final int enteredWordPos) {
+ final ResearchLogger researchLogger = getInstance();
+ researchLogger.enqueueEvent(LOGSTATEMENT_LATINIME_ONENDBATCHINPUT, enteredText,
+ enteredWordPos);
+ researchLogger.mStatistics.recordGestureInput();
+ }
+
private static final LogStatement LOGSTATEMENT_STATISTICS =
new LogStatement("Statistics", false, false, "charCount", "letterCount", "numberCount",
"spaceCount", "deleteOpsCount", "wordCount", "isEmptyUponStarting",
"isEmptinessStateKnown", "averageTimeBetweenKeys", "averageTimeBeforeDelete",
- "averageTimeDuringRepeatedDelete", "averageTimeAfterDelete");
+ "averageTimeDuringRepeatedDelete", "averageTimeAfterDelete",
+ "dictionaryWordCount", "splitWordsCount", "gestureInputCount");
private static void logStatistics() {
final ResearchLogger researchLogger = getInstance();
final Statistics statistics = researchLogger.mStatistics;
@@ -1219,6 +1223,8 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
statistics.mIsEmptinessStateKnown, statistics.mKeyCounter.getAverageTime(),
statistics.mBeforeDeleteKeyCounter.getAverageTime(),
statistics.mDuringRepeatedDeleteKeysCounter.getAverageTime(),
- statistics.mAfterDeleteKeyCounter.getAverageTime());
+ statistics.mAfterDeleteKeyCounter.getAverageTime(),
+ statistics.mDictionaryWordCount, statistics.mSplitWordsCount,
+ statistics.mGestureInputCount);
}
}