parent
75e69753b7
commit
05ee6ad843
|
@ -1153,7 +1153,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
|
||||||
suggestion == null ? null : scrubbedWord, Constants.SUGGESTION_STRIP_COORDINATE,
|
suggestion == null ? null : scrubbedWord, Constants.SUGGESTION_STRIP_COORDINATE,
|
||||||
Constants.SUGGESTION_STRIP_COORDINATE);
|
Constants.SUGGESTION_STRIP_COORDINATE);
|
||||||
researchLogger.commitCurrentLogUnitAsWord(scrubbedWord, Long.MAX_VALUE, isBatchMode);
|
researchLogger.commitCurrentLogUnitAsWord(scrubbedWord, Long.MAX_VALUE, isBatchMode);
|
||||||
researchLogger.mStatistics.recordManualSuggestion();
|
researchLogger.mStatistics.recordManualSuggestion(SystemClock.uptimeMillis());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1281,7 +1281,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
|
||||||
}
|
}
|
||||||
researchLogger.enqueueEvent(logUnit != null ? logUnit : researchLogger.mCurrentLogUnit,
|
researchLogger.enqueueEvent(logUnit != null ? logUnit : researchLogger.mCurrentLogUnit,
|
||||||
LOGSTATEMENT_LATINIME_REVERTCOMMIT, committedWord, originallyTypedWord);
|
LOGSTATEMENT_LATINIME_REVERTCOMMIT, committedWord, originallyTypedWord);
|
||||||
researchLogger.mStatistics.recordRevertCommit();
|
researchLogger.mStatistics.recordRevertCommit(SystemClock.uptimeMillis());
|
||||||
researchLogger.commitCurrentLogUnitAsWord(originallyTypedWord, Long.MAX_VALUE, isBatchMode);
|
researchLogger.commitCurrentLogUnitAsWord(originallyTypedWord, Long.MAX_VALUE, isBatchMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1611,7 +1611,8 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
|
||||||
final ResearchLogger researchLogger = getInstance();
|
final ResearchLogger researchLogger = getInstance();
|
||||||
researchLogger.enqueueEvent(LOGSTATEMENT_LATINIME_ONENDBATCHINPUT, enteredText,
|
researchLogger.enqueueEvent(LOGSTATEMENT_LATINIME_ONENDBATCHINPUT, enteredText,
|
||||||
enteredWordPos);
|
enteredWordPos);
|
||||||
researchLogger.mStatistics.recordGestureInput(enteredText.length());
|
researchLogger.mStatistics.recordGestureInput(enteredText.length(),
|
||||||
|
SystemClock.uptimeMillis());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1624,7 +1625,20 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
|
||||||
public static void latinIME_handleBackspace_batch(final CharSequence deletedText) {
|
public static void latinIME_handleBackspace_batch(final CharSequence deletedText) {
|
||||||
final ResearchLogger researchLogger = getInstance();
|
final ResearchLogger researchLogger = getInstance();
|
||||||
researchLogger.enqueueEvent(LOGSTATEMENT_LATINIME_HANDLEBACKSPACE_BATCH, deletedText);
|
researchLogger.enqueueEvent(LOGSTATEMENT_LATINIME_HANDLEBACKSPACE_BATCH, deletedText);
|
||||||
researchLogger.mStatistics.recordGestureDelete();
|
researchLogger.mStatistics.recordGestureDelete(deletedText.length(),
|
||||||
|
SystemClock.uptimeMillis());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log a long interval between user operation.
|
||||||
|
*
|
||||||
|
* UserInput: The user has not done anything for a while.
|
||||||
|
*/
|
||||||
|
private static final LogStatement LOGSTATEMENT_ONUSERPAUSE = new LogStatement("OnUserPause",
|
||||||
|
false, false, "intervalInMs");
|
||||||
|
public static void onUserPause(final long interval) {
|
||||||
|
final ResearchLogger researchLogger = getInstance();
|
||||||
|
researchLogger.enqueueEvent(LOGSTATEMENT_ONUSERPAUSE, interval);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -134,17 +134,9 @@ public class Statistics {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "recordChar() called");
|
Log.d(TAG, "recordChar() called");
|
||||||
}
|
}
|
||||||
final long delta = time - mLastTapTime;
|
|
||||||
if (codePoint == Constants.CODE_DELETE) {
|
if (codePoint == Constants.CODE_DELETE) {
|
||||||
mDeleteKeyCount++;
|
mDeleteKeyCount++;
|
||||||
if (delta < MIN_DELETION_INTERMISSION) {
|
recordUserAction(time, true /* isDeletion */);
|
||||||
if (mIsLastKeyDeleteKey) {
|
|
||||||
mDuringRepeatedDeleteKeysCounter.add(delta);
|
|
||||||
} else {
|
|
||||||
mBeforeDeleteKeyCounter.add(delta);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mIsLastKeyDeleteKey = true;
|
|
||||||
} else {
|
} else {
|
||||||
mCharCount++;
|
mCharCount++;
|
||||||
if (Character.isDigit(codePoint)) {
|
if (Character.isDigit(codePoint)) {
|
||||||
|
@ -156,14 +148,8 @@ public class Statistics {
|
||||||
if (Character.isSpaceChar(codePoint)) {
|
if (Character.isSpaceChar(codePoint)) {
|
||||||
mSpaceCount++;
|
mSpaceCount++;
|
||||||
}
|
}
|
||||||
if (mIsLastKeyDeleteKey && delta < MIN_DELETION_INTERMISSION) {
|
recordUserAction(time, false /* isDeletion */);
|
||||||
mAfterDeleteKeyCounter.add(delta);
|
|
||||||
} else if (!mIsLastKeyDeleteKey && delta < MIN_TYPING_INTERMISSION) {
|
|
||||||
mKeyCounter.add(delta);
|
|
||||||
}
|
|
||||||
mIsLastKeyDeleteKey = false;
|
|
||||||
}
|
}
|
||||||
mLastTapTime = time;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void recordWordEntered(final boolean isDictionaryWord) {
|
public void recordWordEntered(final boolean isDictionaryWord) {
|
||||||
|
@ -177,9 +163,10 @@ public class Statistics {
|
||||||
mSplitWordsCount++;
|
mSplitWordsCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void recordGestureInput(final int numCharsEntered) {
|
public void recordGestureInput(final int numCharsEntered, final long time) {
|
||||||
mGesturesInputCount++;
|
mGesturesInputCount++;
|
||||||
mGesturesCharsCount += numCharsEntered;
|
mGesturesCharsCount += numCharsEntered;
|
||||||
|
recordUserAction(time, false /* isDeletion */);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIsEmptyUponStarting(final boolean isEmpty) {
|
public void setIsEmptyUponStarting(final boolean isEmpty) {
|
||||||
|
@ -187,14 +174,43 @@ public class Statistics {
|
||||||
mIsEmptinessStateKnown = true;
|
mIsEmptinessStateKnown = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void recordGestureDelete() {
|
public void recordGestureDelete(final int length, final long time) {
|
||||||
mGesturesDeletedCount++;
|
mGesturesDeletedCount++;
|
||||||
}
|
recordUserAction(time, true /* isDeletion */);
|
||||||
public void recordManualSuggestion() {
|
|
||||||
mManualSuggestionsCount++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void recordRevertCommit() {
|
public void recordManualSuggestion(final long time) {
|
||||||
|
mManualSuggestionsCount++;
|
||||||
|
recordUserAction(time, false /* isDeletion */);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void recordRevertCommit(final long time) {
|
||||||
mRevertCommitsCount++;
|
mRevertCommitsCount++;
|
||||||
|
recordUserAction(time, true /* isDeletion */);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void recordUserAction(final long time, final boolean isDeletion) {
|
||||||
|
final long delta = time - mLastTapTime;
|
||||||
|
if (isDeletion) {
|
||||||
|
if (delta < MIN_DELETION_INTERMISSION) {
|
||||||
|
if (mIsLastKeyDeleteKey) {
|
||||||
|
mDuringRepeatedDeleteKeysCounter.add(delta);
|
||||||
|
} else {
|
||||||
|
mBeforeDeleteKeyCounter.add(delta);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ResearchLogger.onUserPause(delta);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mIsLastKeyDeleteKey && delta < MIN_DELETION_INTERMISSION) {
|
||||||
|
mAfterDeleteKeyCounter.add(delta);
|
||||||
|
} else if (!mIsLastKeyDeleteKey && delta < MIN_TYPING_INTERMISSION) {
|
||||||
|
mKeyCounter.add(delta);
|
||||||
|
} else {
|
||||||
|
ResearchLogger.onUserPause(delta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mIsLastKeyDeleteKey = isDeletion;
|
||||||
|
mLastTapTime = time;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue