Logging for the VoiceSearch alternates

Log which voice-based alternates were selected, and what
word in the recognition results were replaced.

Change-Id: I1527dc794902a18a226ca45e186ecf84841094c8

Conflicts:

	java/src/com/android/inputmethod/latin/LatinIME.java
main
Maryam Garrett 2010-08-26 16:31:54 -04:00
parent a66ccc3e8d
commit 7b9ed1aa76
3 changed files with 21 additions and 18 deletions

View File

@ -1727,13 +1727,13 @@ public class LatinIME extends InputMethodService
}
public void pickSuggestionManually(int index, CharSequence suggestion) {
if (mAfterVoiceInput && mShowingVoiceSuggestions) mVoiceInput.logNBestChoose(index);
List<CharSequence> suggestions = mCandidateView.getSuggestions();
if (mAfterVoiceInput && !mShowingVoiceSuggestions) {
if (mAfterVoiceInput && mShowingVoiceSuggestions) {
mVoiceInput.flushAllTextModificationCounters();
// send this intent AFTER logging any prior aggregated edits.
mVoiceInput.logTextModifiedByChooseSuggestion(suggestion.length());
mVoiceInput.logTextModifiedByChooseSuggestion(suggestion.toString(), index,
mWordSeparators,
getCurrentInputConnection());
}
final boolean correcting = TextEntryState.isCorrecting();

View File

@ -16,6 +16,7 @@
package com.android.inputmethod.voice;
import com.android.inputmethod.latin.EditingUtil;
import com.android.inputmethod.latin.R;
import android.content.ContentResolver;
@ -30,6 +31,7 @@ import android.speech.RecognitionListener;
import android.speech.SpeechRecognizer;
import android.speech.RecognizerIntent;
import android.util.Log;
import android.view.inputmethod.InputConnection;
import android.view.View;
import android.view.View.OnClickListener;
@ -423,8 +425,14 @@ public class VoiceInput implements OnClickListener {
mLogger.textModifiedByTypingDeletion(length);
}
public void logTextModifiedByChooseSuggestion(int length) {
mLogger.textModifiedByChooseSuggestion(length);
public void logTextModifiedByChooseSuggestion(String suggestion, int index,
String wordSeparators, InputConnection ic) {
EditingUtil.Range range = new EditingUtil.Range();
String wordToBeReplaced = EditingUtil.getWordAtCursor(ic, wordSeparators, range);
// If we enable phrase-based alternatives, only send up the first word
// in suggestion and wordToBeReplaced.
mLogger.textModifiedByChooseSuggestion(suggestion.length(), wordToBeReplaced.length(),
index, wordToBeReplaced, suggestion);
}
public void logKeyboardWarningDialogShown() {
@ -455,10 +463,6 @@ public class VoiceInput implements OnClickListener {
mLogger.voiceInputDelivered(length);
}
public void logNBestChoose(int index) {
mLogger.nBestChoose(index);
}
public void logInputEnded() {
mLogger.inputEnded();
}

View File

@ -178,20 +178,19 @@ public class VoiceInputLogger {
mContext.sendBroadcast(i);
}
public void textModifiedByChooseSuggestion(int length) {
public void textModifiedByChooseSuggestion(int suggestionLength, int replacedPhraseLength,
int index, String before, String after) {
Intent i = newLoggingBroadcast(LoggingEvents.VoiceIme.TEXT_MODIFIED);
i.putExtra(LoggingEvents.VoiceIme.EXTRA_TEXT_MODIFIED_LENGTH, length);
i.putExtra(LoggingEvents.VoiceIme.EXTRA_TEXT_MODIFIED_LENGTH, suggestionLength);
i.putExtra(LoggingEvents.VoiceIme.EXTRA_TEXT_REPLACED_LENGTH, replacedPhraseLength);
i.putExtra(LoggingEvents.VoiceIme.EXTRA_TEXT_MODIFIED_TYPE,
LoggingEvents.VoiceIme.TEXT_MODIFIED_TYPE_CHOOSE_SUGGESTION);
i.putExtra(LoggingEvents.VoiceIme.EXTRA_N_BEST_CHOOSE_INDEX, index);
i.putExtra(LoggingEvents.VoiceIme.EXTRA_BEFORE_N_BEST_CHOOSE, before);
i.putExtra(LoggingEvents.VoiceIme.EXTRA_AFTER_N_BEST_CHOOSE, after);
mContext.sendBroadcast(i);
}
public void nBestChoose(int index) {
Intent i = newLoggingBroadcast(LoggingEvents.VoiceIme.N_BEST_CHOOSE);
i.putExtra(LoggingEvents.VoiceIme.EXTRA_N_BEST_CHOOSE_INDEX, index);
mContext.sendBroadcast(i);
}
public void inputEnded() {
mContext.sendBroadcast(newLoggingBroadcast(LoggingEvents.VoiceIme.INPUT_ENDED));
}