ResearchLogger log RichInputConnection
Move many ResearchLogger data collection points to RichInputConnection. By collecting data here, developers do not have to remember to keep the ResearchLog consistent with calls to the RichInputConnection. In addition, some unnecessary log points were removed, and the ResearchLogger is now independent of LatinImeLogger. multi-project change with I67bbf5fe8fd821da967a50b69e467caafc7fd388 Bug: 6188932 Change-Id: I49ccee1dcffe8d41401b42a637dd0da8dd11d90dmain
parent
5e5d0b83a6
commit
2996cf24ef
|
@ -885,13 +885,13 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
}
|
||||
}
|
||||
}
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_onDisplayCompletions(applicationSpecifiedCompletions);
|
||||
}
|
||||
if (!mCurrentSettings.isApplicationSpecifiedCompletionsOn()) return;
|
||||
mApplicationSpecifiedCompletions = applicationSpecifiedCompletions;
|
||||
if (applicationSpecifiedCompletions == null) {
|
||||
clearSuggestionStrip();
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_onDisplayCompletions(null);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -913,6 +913,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
// this case? This says to keep whatever the user typed.
|
||||
mWordComposer.setAutoCorrection(mWordComposer.getTypedWord());
|
||||
setSuggestionStripShown(true);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_onDisplayCompletions(applicationSpecifiedCompletions);
|
||||
}
|
||||
}
|
||||
|
||||
private void setSuggestionStripShownInternal(boolean shown, boolean needsInputViewShown) {
|
||||
|
@ -1032,9 +1035,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
final CharSequence typedWord = mWordComposer.getTypedWord();
|
||||
if (typedWord.length() > 0) {
|
||||
mConnection.commitText(typedWord, 1);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_commitText(typedWord);
|
||||
}
|
||||
final CharSequence prevWord = addToUserHistoryDictionary(typedWord);
|
||||
mLastComposedWord = mWordComposer.commitWord(
|
||||
LastComposedWord.COMMIT_TYPE_USER_TYPED_WORD, typedWord.toString(),
|
||||
|
@ -1077,12 +1077,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
if (lastTwo != null && lastTwo.length() == 2
|
||||
&& lastTwo.charAt(0) == Keyboard.CODE_SPACE) {
|
||||
mConnection.deleteSurroundingText(2, 0);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_deleteSurroundingText(2);
|
||||
}
|
||||
mConnection.commitText(lastTwo.charAt(1) + " ", 1);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_swapSwapperAndSpaceWhileInBatchEdit();
|
||||
ResearchLogger.latinIME_swapSwapperAndSpace();
|
||||
}
|
||||
mKeyboardSwitcher.updateShiftState();
|
||||
}
|
||||
|
@ -1099,9 +1096,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
mHandler.cancelDoubleSpacesTimer();
|
||||
mConnection.deleteSurroundingText(2, 0);
|
||||
mConnection.commitText(". ", 1);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_doubleSpaceAutoPeriod();
|
||||
}
|
||||
mKeyboardSwitcher.updateShiftState();
|
||||
return true;
|
||||
}
|
||||
|
@ -1165,9 +1159,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
|
||||
private void performEditorAction(int actionId) {
|
||||
mConnection.performEditorAction(actionId);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_performEditorAction(actionId);
|
||||
}
|
||||
}
|
||||
|
||||
private void handleLanguageSwitchKey() {
|
||||
|
@ -1204,6 +1195,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
// For backward compatibility. See {@link InputMethodService#sendKeyChar(char)}.
|
||||
if (code >= '0' && code <= '9') {
|
||||
super.sendKeyChar((char)code);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_sendKeyCodePoint(code);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1220,9 +1214,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
final String text = new String(new int[] { code }, 0, 1);
|
||||
mConnection.commitText(text, text.length());
|
||||
}
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_sendKeyCodePoint(code);
|
||||
}
|
||||
}
|
||||
|
||||
// Implementation of {@link KeyboardActionListener}.
|
||||
|
@ -1332,9 +1323,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
sendKeyCodePoint(Keyboard.CODE_SPACE);
|
||||
}
|
||||
mConnection.commitText(text, 1);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_commitText(text);
|
||||
}
|
||||
mConnection.endBatchEdit();
|
||||
mKeyboardSwitcher.updateShiftState();
|
||||
mKeyboardSwitcher.onCodeInput(Keyboard.CODE_OUTPUT_TEXT);
|
||||
|
@ -1429,9 +1417,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
// like the smiley key or the .com key.
|
||||
final int length = mEnteredText.length();
|
||||
mConnection.deleteSurroundingText(length, 0);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_deleteSurroundingText(length);
|
||||
}
|
||||
// If we have mEnteredText, then we know that mHasUncommittedTypedChars == false.
|
||||
// In addition we know that spaceState is false, and that we should not be
|
||||
// reverting any autocorrect at this point. So we can safely return.
|
||||
|
@ -1451,9 +1436,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
mHandler.postUpdateSuggestionStrip();
|
||||
} else {
|
||||
mConnection.deleteSurroundingText(1, 0);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_deleteSurroundingText(1);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mLastComposedWord.canRevertCommit()) {
|
||||
|
@ -1482,9 +1464,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
final int lengthToDelete = mLastSelectionEnd - mLastSelectionStart;
|
||||
mConnection.setSelection(mLastSelectionEnd, mLastSelectionEnd);
|
||||
mConnection.deleteSurroundingText(lengthToDelete, 0);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_deleteSurroundingText(lengthToDelete);
|
||||
}
|
||||
} else {
|
||||
// There is no selection, just delete one character.
|
||||
if (NOT_A_CURSOR_POSITION == mLastSelectionEnd) {
|
||||
|
@ -1503,14 +1482,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
} else {
|
||||
mConnection.deleteSurroundingText(1, 0);
|
||||
}
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_deleteSurroundingText(1);
|
||||
}
|
||||
if (mDeleteCount > DELETE_ACCELERATE_AT) {
|
||||
mConnection.deleteSurroundingText(1, 0);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_deleteSurroundingText(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (mCurrentSettings.isSuggestionsRequested(mDisplayOrientation)) {
|
||||
|
@ -1838,10 +1811,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
+ "is empty? Impossible! I must commit suicide.");
|
||||
}
|
||||
Utils.Stats.onAutoCorrection(typedWord, autoCorrection.toString(), separatorCodePoint);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_commitCurrentAutoCorrection(typedWord,
|
||||
autoCorrection.toString());
|
||||
}
|
||||
mExpectingUpdateSelection = true;
|
||||
commitChosenWord(autoCorrection, LastComposedWord.COMMIT_TYPE_DECIDED_WORD,
|
||||
separatorCodePoint);
|
||||
|
@ -1867,13 +1836,13 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
// So, LatinImeLogger logs "" as a user's input.
|
||||
LatinImeLogger.logOnManualSuggestion("", suggestion.toString(), index, suggestedWords);
|
||||
// Rely on onCodeInput to do the complicated swapping/stripping logic consistently.
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_punctuationSuggestion(index, suggestion, x, y);
|
||||
}
|
||||
final int primaryCode = suggestion.charAt(0);
|
||||
onCodeInput(primaryCode,
|
||||
KeyboardActionListener.SUGGESTION_STRIP_COORDINATE,
|
||||
KeyboardActionListener.SUGGESTION_STRIP_COORDINATE);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_punctuationSuggestion(index, suggestion, x, y);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1900,10 +1869,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
final CompletionInfo completionInfo = mApplicationSpecifiedCompletions[index];
|
||||
mConnection.commitCompletion(completionInfo);
|
||||
mConnection.endBatchEdit();
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_pickApplicationSpecifiedCompletion(index,
|
||||
completionInfo.getText(), x, y);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1912,12 +1877,12 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
final String replacedWord = mWordComposer.getTypedWord().toString();
|
||||
LatinImeLogger.logOnManualSuggestion(replacedWord,
|
||||
suggestion.toString(), index, suggestedWords);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_pickSuggestionManually(replacedWord, index, suggestion, x, y);
|
||||
}
|
||||
mExpectingUpdateSelection = true;
|
||||
commitChosenWord(suggestion, LastComposedWord.COMMIT_TYPE_MANUAL_PICK,
|
||||
LastComposedWord.NOT_A_SEPARATOR);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_pickSuggestionManually(replacedWord, index, suggestion, x, y);
|
||||
}
|
||||
mConnection.endBatchEdit();
|
||||
// Don't allow cancellation of manual pick
|
||||
mLastComposedWord.deactivate();
|
||||
|
@ -1952,9 +1917,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
final SuggestedWords suggestedWords = mSuggestionStripView.getSuggestions();
|
||||
mConnection.commitText(SuggestionSpanUtils.getTextWithSuggestionSpan(
|
||||
this, chosenWord, suggestedWords, mIsMainDictionaryAvailable), 1);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_commitText(chosenWord);
|
||||
}
|
||||
// Add the word to the user history dictionary
|
||||
final CharSequence prevWord = addToUserHistoryDictionary(chosenWord);
|
||||
// TODO: figure out here if this is an auto-correct or if the best word is actually
|
||||
|
@ -2021,9 +1983,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
mWordComposer.setComposingWord(word, mKeyboardSwitcher.getKeyboard());
|
||||
final int length = word.length();
|
||||
mConnection.deleteSurroundingText(length, 0);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_deleteSurroundingText(length);
|
||||
}
|
||||
mConnection.setComposingText(word, 1);
|
||||
mHandler.postUpdateSuggestionStrip();
|
||||
}
|
||||
|
@ -2051,9 +2010,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
}
|
||||
}
|
||||
mConnection.deleteSurroundingText(deleteLength, 0);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_deleteSurroundingText(deleteLength);
|
||||
}
|
||||
if (!TextUtils.isEmpty(previousWord) && !TextUtils.isEmpty(committedWord)) {
|
||||
mUserHistoryDictionary.cancelAddingUserHistory(
|
||||
previousWord.toString(), committedWord.toString());
|
||||
|
|
|
@ -55,7 +55,9 @@ public class RichInputConnection {
|
|||
public void beginBatchEdit() {
|
||||
if (++mNestLevel == 1) {
|
||||
mIC = mParent.getCurrentInputConnection();
|
||||
if (null != mIC) mIC.beginBatchEdit();
|
||||
if (null != mIC) {
|
||||
mIC.beginBatchEdit();
|
||||
}
|
||||
} else {
|
||||
if (DBG) {
|
||||
throw new RuntimeException("Nest level too deep");
|
||||
|
@ -66,7 +68,9 @@ public class RichInputConnection {
|
|||
}
|
||||
public void endBatchEdit() {
|
||||
if (mNestLevel <= 0) Log.e(TAG, "Batch edit not in progress!"); // TODO: exception instead
|
||||
if (--mNestLevel == 0 && null != mIC) mIC.endBatchEdit();
|
||||
if (--mNestLevel == 0 && null != mIC) {
|
||||
mIC.endBatchEdit();
|
||||
}
|
||||
}
|
||||
|
||||
private void checkBatchEdit() {
|
||||
|
@ -79,12 +83,22 @@ public class RichInputConnection {
|
|||
|
||||
public void finishComposingText() {
|
||||
checkBatchEdit();
|
||||
if (null != mIC) mIC.finishComposingText();
|
||||
if (null != mIC) {
|
||||
mIC.finishComposingText();
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.richInputConnection_finishComposingText();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void commitText(final CharSequence text, final int i) {
|
||||
checkBatchEdit();
|
||||
if (null != mIC) mIC.commitText(text, i);
|
||||
if (null != mIC) {
|
||||
mIC.commitText(text, i);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.richInputConnection_commitText(text, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int getCursorCapsMode(final int inputType) {
|
||||
|
@ -107,37 +121,72 @@ public class RichInputConnection {
|
|||
|
||||
public void deleteSurroundingText(final int i, final int j) {
|
||||
checkBatchEdit();
|
||||
if (null != mIC) mIC.deleteSurroundingText(i, j);
|
||||
if (null != mIC) {
|
||||
mIC.deleteSurroundingText(i, j);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.richInputConnection_deleteSurroundingText(i, j);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void performEditorAction(final int actionId) {
|
||||
mIC = mParent.getCurrentInputConnection();
|
||||
if (null != mIC) mIC.performEditorAction(actionId);
|
||||
if (null != mIC) {
|
||||
mIC.performEditorAction(actionId);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.richInputConnection_performEditorAction(actionId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void sendKeyEvent(final KeyEvent keyEvent) {
|
||||
checkBatchEdit();
|
||||
if (null != mIC) mIC.sendKeyEvent(keyEvent);
|
||||
if (null != mIC) {
|
||||
mIC.sendKeyEvent(keyEvent);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.richInputConnection_sendKeyEvent(keyEvent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setComposingText(final CharSequence text, final int i) {
|
||||
checkBatchEdit();
|
||||
if (null != mIC) mIC.setComposingText(text, i);
|
||||
if (null != mIC) {
|
||||
mIC.setComposingText(text, i);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.richInputConnection_setComposingText(text, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setSelection(final int from, final int to) {
|
||||
checkBatchEdit();
|
||||
if (null != mIC) mIC.setSelection(from, to);
|
||||
if (null != mIC) {
|
||||
mIC.setSelection(from, to);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.richInputConnection_setSelection(from, to);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void commitCorrection(final CorrectionInfo correctionInfo) {
|
||||
checkBatchEdit();
|
||||
if (null != mIC) mIC.commitCorrection(correctionInfo);
|
||||
if (null != mIC) {
|
||||
mIC.commitCorrection(correctionInfo);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.richInputConnection_commitCorrection(correctionInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void commitCompletion(final CompletionInfo completionInfo) {
|
||||
checkBatchEdit();
|
||||
if (null != mIC) mIC.commitCompletion(completionInfo);
|
||||
if (null != mIC) {
|
||||
mIC.commitCompletion(completionInfo);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.richInputConnection_commitCompletion(completionInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public CharSequence getNthPreviousWord(final String sentenceSeperators, final int n) {
|
||||
|
@ -315,9 +364,6 @@ public class RichInputConnection {
|
|||
if (lastOne != null && lastOne.length() == 1
|
||||
&& lastOne.charAt(0) == Keyboard.CODE_SPACE) {
|
||||
deleteSurroundingText(1, 0);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_deleteSurroundingText(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -382,13 +428,7 @@ public class RichInputConnection {
|
|||
return false;
|
||||
}
|
||||
deleteSurroundingText(2, 0);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_deleteSurroundingText(2);
|
||||
}
|
||||
commitText(" ", 1);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_revertDoubleSpaceWhileInBatchEdit();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -409,13 +449,7 @@ public class RichInputConnection {
|
|||
return false;
|
||||
}
|
||||
deleteSurroundingText(2, 0);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_deleteSurroundingText(2);
|
||||
}
|
||||
commitText(" " + textBeforeCursor.subSequence(0, 1), 1);
|
||||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_revertSwapPunctuation();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,12 +37,14 @@ import android.os.IBinder;
|
|||
import android.text.TextUtils;
|
||||
import android.text.format.DateUtils;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.view.inputmethod.CompletionInfo;
|
||||
import android.view.inputmethod.CorrectionInfo;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.view.inputmethod.InputConnection;
|
||||
import android.widget.Button;
|
||||
|
@ -846,20 +848,6 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
|
|||
stop();
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_LATINIME_COMMITTEXT = {
|
||||
"LatinIMECommitText", "typedWord"
|
||||
};
|
||||
|
||||
public static void latinIME_commitText(final CharSequence typedWord) {
|
||||
final String scrubbedWord = scrubDigitsFromString(typedWord.toString());
|
||||
final Object[] values = {
|
||||
scrubbedWord
|
||||
};
|
||||
final ResearchLogger researchLogger = getInstance();
|
||||
researchLogger.enqueuePotentiallyPrivateEvent(EVENTKEYS_LATINIME_COMMITTEXT, values);
|
||||
researchLogger.onWordComplete(scrubbedWord);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_USER_FEEDBACK = {
|
||||
"UserFeedback", "FeedbackContents"
|
||||
};
|
||||
|
@ -914,47 +902,6 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
|
|||
getInstance().enqueuePotentiallyPrivateEvent(EVENTKEYS_LATINIME_ONCODEINPUT, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_CORRECTION = {
|
||||
"LogCorrection", "subgroup", "before", "after", "position"
|
||||
};
|
||||
public static void logCorrection(final String subgroup, final String before, final String after,
|
||||
final int position) {
|
||||
final Object[] values = {
|
||||
subgroup, scrubDigitsFromString(before), scrubDigitsFromString(after), position
|
||||
};
|
||||
getInstance().enqueuePotentiallyPrivateEvent(EVENTKEYS_CORRECTION, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_LATINIME_COMMITCURRENTAUTOCORRECTION = {
|
||||
"LatinIMECommitCurrentAutoCorrection", "typedWord", "autoCorrection"
|
||||
};
|
||||
public static void latinIME_commitCurrentAutoCorrection(final String typedWord,
|
||||
final String autoCorrection) {
|
||||
final Object[] values = {
|
||||
scrubDigitsFromString(typedWord), scrubDigitsFromString(autoCorrection)
|
||||
};
|
||||
final ResearchLogger researchLogger = getInstance();
|
||||
researchLogger.enqueuePotentiallyPrivateEvent(
|
||||
EVENTKEYS_LATINIME_COMMITCURRENTAUTOCORRECTION, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_LATINIME_DELETESURROUNDINGTEXT = {
|
||||
"LatinIMEDeleteSurroundingText", "length"
|
||||
};
|
||||
public static void latinIME_deleteSurroundingText(final int length) {
|
||||
final Object[] values = {
|
||||
length
|
||||
};
|
||||
getInstance().enqueueEvent(EVENTKEYS_LATINIME_DELETESURROUNDINGTEXT, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_LATINIME_DOUBLESPACEAUTOPERIOD = {
|
||||
"LatinIMEDoubleSpaceAutoPeriod"
|
||||
};
|
||||
public static void latinIME_doubleSpaceAutoPeriod() {
|
||||
getInstance().enqueueEvent(EVENTKEYS_LATINIME_DOUBLESPACEAUTOPERIOD, EVENTKEYS_NULLVALUES);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_LATINIME_ONDISPLAYCOMPLETIONS = {
|
||||
"LatinIMEOnDisplayCompletions", "applicationSpecifiedCompletions"
|
||||
};
|
||||
|
@ -979,6 +926,10 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
|
|||
public static void latinIME_onWindowHidden(final int savedSelectionStart,
|
||||
final int savedSelectionEnd, final InputConnection ic) {
|
||||
if (ic != null) {
|
||||
// Capture the TextView contents. This will trigger onUpdateSelection(), so we
|
||||
// set sLatinIMEExpectingUpdateSelection so that when onUpdateSelection() is called,
|
||||
// it can tell that it was generated by the logging code, and not by the user, and
|
||||
// therefore keep user-visible state as is.
|
||||
ic.beginBatchEdit();
|
||||
ic.performContextMenuAction(android.R.id.selectAll);
|
||||
CharSequence charSequence = ic.getSelectedText(0);
|
||||
|
@ -1048,29 +999,6 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
|
|||
researchLogger.enqueuePotentiallyPrivateEvent(EVENTKEYS_LATINIME_ONUPDATESELECTION, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_LATINIME_PERFORMEDITORACTION = {
|
||||
"LatinIMEPerformEditorAction", "imeActionNext"
|
||||
};
|
||||
public static void latinIME_performEditorAction(final int imeActionNext) {
|
||||
final Object[] values = {
|
||||
imeActionNext
|
||||
};
|
||||
getInstance().enqueueEvent(EVENTKEYS_LATINIME_PERFORMEDITORACTION, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_LATINIME_PICKAPPLICATIONSPECIFIEDCOMPLETION = {
|
||||
"LatinIMEPickApplicationSpecifiedCompletion", "index", "text", "x", "y"
|
||||
};
|
||||
public static void latinIME_pickApplicationSpecifiedCompletion(final int index,
|
||||
final CharSequence cs, int x, int y) {
|
||||
final Object[] values = {
|
||||
index, cs, x, y
|
||||
};
|
||||
final ResearchLogger researchLogger = getInstance();
|
||||
researchLogger.enqueuePotentiallyPrivateEvent(
|
||||
EVENTKEYS_LATINIME_PICKAPPLICATIONSPECIFIEDCOMPLETION, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_LATINIME_PICKSUGGESTIONMANUALLY = {
|
||||
"LatinIMEPickSuggestionManually", "replacedWord", "index", "suggestion", "x", "y"
|
||||
};
|
||||
|
@ -1096,21 +1024,6 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
|
|||
getInstance().enqueueEvent(EVENTKEYS_LATINIME_PUNCTUATIONSUGGESTION, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_LATINIME_REVERTDOUBLESPACEWHILEINBATCHEDIT = {
|
||||
"LatinIMERevertDoubleSpaceWhileInBatchEdit"
|
||||
};
|
||||
public static void latinIME_revertDoubleSpaceWhileInBatchEdit() {
|
||||
getInstance().enqueueEvent(EVENTKEYS_LATINIME_REVERTDOUBLESPACEWHILEINBATCHEDIT,
|
||||
EVENTKEYS_NULLVALUES);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_LATINIME_REVERTSWAPPUNCTUATION = {
|
||||
"LatinIMERevertSwapPunctuation"
|
||||
};
|
||||
public static void latinIME_revertSwapPunctuation() {
|
||||
getInstance().enqueueEvent(EVENTKEYS_LATINIME_REVERTSWAPPUNCTUATION, EVENTKEYS_NULLVALUES);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_LATINIME_SENDKEYCODEPOINT = {
|
||||
"LatinIMESendKeyCodePoint", "code"
|
||||
};
|
||||
|
@ -1121,12 +1034,11 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
|
|||
getInstance().enqueuePotentiallyPrivateEvent(EVENTKEYS_LATINIME_SENDKEYCODEPOINT, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_LATINIME_SWAPSWAPPERANDSPACEWHILEINBATCHEDIT = {
|
||||
"LatinIMESwapSwapperAndSpaceWhileInBatchEdit"
|
||||
private static final String[] EVENTKEYS_LATINIME_SWAPSWAPPERANDSPACE = {
|
||||
"LatinIMESwapSwapperAndSpace"
|
||||
};
|
||||
public static void latinIME_swapSwapperAndSpaceWhileInBatchEdit() {
|
||||
getInstance().enqueueEvent(EVENTKEYS_LATINIME_SWAPSWAPPERANDSPACEWHILEINBATCHEDIT,
|
||||
EVENTKEYS_NULLVALUES);
|
||||
public static void latinIME_swapSwapperAndSpace() {
|
||||
getInstance().enqueueEvent(EVENTKEYS_LATINIME_SWAPSWAPPERANDSPACE, EVENTKEYS_NULLVALUES);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_MAINKEYBOARDVIEW_ONLONGPRESS = {
|
||||
|
@ -1245,6 +1157,109 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
|
|||
getInstance().enqueuePotentiallyPrivateEvent(EVENTKEYS_POINTERTRACKER_ONMOVEEVENT, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_RICHINPUTCONNECTION_COMMITCOMPLETION = {
|
||||
"RichInputConnectionCommitCompletion", "completionInfo"
|
||||
};
|
||||
public static void richInputConnection_commitCompletion(final CompletionInfo completionInfo) {
|
||||
final Object[] values = {
|
||||
completionInfo
|
||||
};
|
||||
final ResearchLogger researchLogger = getInstance();
|
||||
researchLogger.enqueuePotentiallyPrivateEvent(
|
||||
EVENTKEYS_RICHINPUTCONNECTION_COMMITCOMPLETION, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_RICHINPUTCONNECTION_COMMITCORRECTION = {
|
||||
"RichInputConnectionCommitCorrection", "CorrectionInfo"
|
||||
};
|
||||
public static void richInputConnection_commitCorrection(CorrectionInfo correctionInfo) {
|
||||
final String typedWord = correctionInfo.getOldText().toString();
|
||||
final String autoCorrection = correctionInfo.getNewText().toString();
|
||||
final Object[] values = {
|
||||
scrubDigitsFromString(typedWord), scrubDigitsFromString(autoCorrection)
|
||||
};
|
||||
final ResearchLogger researchLogger = getInstance();
|
||||
researchLogger.enqueuePotentiallyPrivateEvent(
|
||||
EVENTKEYS_RICHINPUTCONNECTION_COMMITCORRECTION, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_RICHINPUTCONNECTION_COMMITTEXT = {
|
||||
"RichInputConnectionCommitText", "typedWord", "newCursorPosition"
|
||||
};
|
||||
public static void richInputConnection_commitText(final CharSequence typedWord,
|
||||
final int newCursorPosition) {
|
||||
final String scrubbedWord = scrubDigitsFromString(typedWord.toString());
|
||||
final Object[] values = {
|
||||
scrubbedWord, newCursorPosition
|
||||
};
|
||||
final ResearchLogger researchLogger = getInstance();
|
||||
researchLogger.enqueuePotentiallyPrivateEvent(EVENTKEYS_RICHINPUTCONNECTION_COMMITTEXT,
|
||||
values);
|
||||
researchLogger.onWordComplete(scrubbedWord);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_RICHINPUTCONNECTION_DELETESURROUNDINGTEXT = {
|
||||
"RichInputConnectionDeleteSurroundingText", "beforeLength", "afterLength"
|
||||
};
|
||||
public static void richInputConnection_deleteSurroundingText(final int beforeLength,
|
||||
final int afterLength) {
|
||||
final Object[] values = {
|
||||
beforeLength, afterLength
|
||||
};
|
||||
getInstance().enqueueEvent(EVENTKEYS_RICHINPUTCONNECTION_DELETESURROUNDINGTEXT, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_RICHINPUTCONNECTION_FINISHCOMPOSINGTEXT = {
|
||||
"RichInputConnectionFinishComposingText"
|
||||
};
|
||||
public static void richInputConnection_finishComposingText() {
|
||||
getInstance().enqueueEvent(EVENTKEYS_RICHINPUTCONNECTION_FINISHCOMPOSINGTEXT,
|
||||
EVENTKEYS_NULLVALUES);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_RICHINPUTCONNECTION_PERFORMEDITORACTION = {
|
||||
"RichInputConnectionPerformEditorAction", "imeActionNext"
|
||||
};
|
||||
public static void richInputConnection_performEditorAction(final int imeActionNext) {
|
||||
final Object[] values = {
|
||||
imeActionNext
|
||||
};
|
||||
getInstance().enqueueEvent(EVENTKEYS_RICHINPUTCONNECTION_PERFORMEDITORACTION, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_RICHINPUTCONNECTION_SENDKEYEVENT = {
|
||||
"RichInputConnectionSendKeyEvent", "eventTime", "action", "code"
|
||||
};
|
||||
public static void richInputConnection_sendKeyEvent(final KeyEvent keyEvent) {
|
||||
final Object[] values = {
|
||||
keyEvent.getEventTime(),
|
||||
keyEvent.getAction(),
|
||||
keyEvent.getKeyCode()
|
||||
};
|
||||
getInstance().enqueueEvent(EVENTKEYS_RICHINPUTCONNECTION_SENDKEYEVENT, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_RICHINPUTCONNECTION_SETCOMPOSINGTEXT = {
|
||||
"RichInputConnectionSetComposingText", "text", "newCursorPosition"
|
||||
};
|
||||
public static void richInputConnection_setComposingText(final CharSequence text,
|
||||
final int newCursorPosition) {
|
||||
final Object[] values = {
|
||||
text, newCursorPosition
|
||||
};
|
||||
getInstance().enqueueEvent(EVENTKEYS_RICHINPUTCONNECTION_SETCOMPOSINGTEXT, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_RICHINPUTCONNECTION_SETSELECTION = {
|
||||
"RichInputConnectionSetSelection", "from", "to"
|
||||
};
|
||||
public static void richInputConnection_setSelection(final int from, final int to) {
|
||||
final Object[] values = {
|
||||
from, to
|
||||
};
|
||||
getInstance().enqueueEvent(EVENTKEYS_RICHINPUTCONNECTION_SETSELECTION, values);
|
||||
}
|
||||
|
||||
private static final String[] EVENTKEYS_SUDDENJUMPINGTOUCHEVENTHANDLER_ONTOUCHEVENT = {
|
||||
"SuddenJumpingTouchEventHandlerOnTouchEvent", "motionEvent"
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue