diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/res/values-in/strings.xml | 6 | ||||
-rw-r--r-- | java/res/values-ja/strings.xml | 6 | ||||
-rw-r--r-- | java/res/values-ko/strings.xml | 6 | ||||
-rw-r--r-- | java/res/values-nb/strings.xml | 6 | ||||
-rw-r--r-- | java/res/values-pl/strings.xml | 6 | ||||
-rw-r--r-- | java/res/values-pt-rPT/strings.xml | 6 | ||||
-rw-r--r-- | java/res/values-ro/strings.xml | 6 | ||||
-rw-r--r-- | java/res/values-sk/strings.xml | 6 | ||||
-rw-r--r-- | java/res/values-sv/strings.xml | 6 | ||||
-rw-r--r-- | java/res/values-uk/strings.xml | 6 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 13 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/ResearchLogger.java | 71 |
12 files changed, 99 insertions, 45 deletions
diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml index ac116ef6b..073eacb2f 100644 --- a/java/res/values-in/strings.xml +++ b/java/res/values-in/strings.xml @@ -118,10 +118,8 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Tema keyboard"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Inggris (Inggris)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Inggris (AS)"</string> - <!-- no translation found for subtype_with_layout_en_GB (2179097748724725906) --> - <skip /> - <!-- no translation found for subtype_with_layout_en_US (1362581347576714579) --> - <skip /> + <string name="subtype_with_layout_en_GB" msgid="2179097748724725906">"Inggris (Inggris) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> + <string name="subtype_with_layout_en_US" msgid="1362581347576714579">"Inggris (AS) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_no_language" msgid="141420857808801746">"Tidak ada bahasa"</string> <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Tanpa bahasa (QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="1177848172397202890">"Tanpa bahasa (QWERTZ)"</string> diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml index 1d3678a80..684bceae7 100644 --- a/java/res/values-ja/strings.xml +++ b/java/res/values-ja/strings.xml @@ -118,10 +118,8 @@ <string name="keyboard_layout" msgid="8451164783510487501">"キーボードのテーマ"</string> <string name="subtype_en_GB" msgid="88170601942311355">"英語(英国)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"英語(米国)"</string> - <!-- no translation found for subtype_with_layout_en_GB (2179097748724725906) --> - <skip /> - <!-- no translation found for subtype_with_layout_en_US (1362581347576714579) --> - <skip /> + <string name="subtype_with_layout_en_GB" msgid="2179097748724725906">"英語(英国)(<xliff:g id="LAYOUT">%s</xliff:g>)"</string> + <string name="subtype_with_layout_en_US" msgid="1362581347576714579">"英語(米国)(<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_no_language" msgid="141420857808801746">"言語設定なし"</string> <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"言語設定なし(QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="1177848172397202890">"言語設定なし(QWERTZ)"</string> diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml index 93785d729..3e870492b 100644 --- a/java/res/values-ko/strings.xml +++ b/java/res/values-ko/strings.xml @@ -118,10 +118,8 @@ <string name="keyboard_layout" msgid="8451164783510487501">"키보드 테마"</string> <string name="subtype_en_GB" msgid="88170601942311355">"영어(영국)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"영어(미국)"</string> - <!-- no translation found for subtype_with_layout_en_GB (2179097748724725906) --> - <skip /> - <!-- no translation found for subtype_with_layout_en_US (1362581347576714579) --> - <skip /> + <string name="subtype_with_layout_en_GB" msgid="2179097748724725906">"영어(영국) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> + <string name="subtype_with_layout_en_US" msgid="1362581347576714579">"영어(미국) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_no_language" msgid="141420857808801746">"언어가 없음"</string> <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"언어가 없음(QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="1177848172397202890">"언어 없음(QWERTZ)"</string> diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml index fc3ea0e90..ce1ebb9fa 100644 --- a/java/res/values-nb/strings.xml +++ b/java/res/values-nb/strings.xml @@ -118,10 +118,8 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Tastaturtema"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Engelsk (Storbritannia)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Engelsk (USA)"</string> - <!-- no translation found for subtype_with_layout_en_GB (2179097748724725906) --> - <skip /> - <!-- no translation found for subtype_with_layout_en_US (1362581347576714579) --> - <skip /> + <string name="subtype_with_layout_en_GB" msgid="2179097748724725906">"Engelsk (Storbritannia) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> + <string name="subtype_with_layout_en_US" msgid="1362581347576714579">"Engelsk (USA) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_no_language" msgid="141420857808801746">"Ingen språk"</string> <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Ingen språk (QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="1177848172397202890">"Ingen språk (QWERTZ)"</string> diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml index cface965c..9a1a2ad43 100644 --- a/java/res/values-pl/strings.xml +++ b/java/res/values-pl/strings.xml @@ -118,10 +118,8 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Motyw klawiatury"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Angielska (Wielka Brytania)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Angielska (Stany Zjednoczone)"</string> - <!-- no translation found for subtype_with_layout_en_GB (2179097748724725906) --> - <skip /> - <!-- no translation found for subtype_with_layout_en_US (1362581347576714579) --> - <skip /> + <string name="subtype_with_layout_en_GB" msgid="2179097748724725906">"angielski (UK) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> + <string name="subtype_with_layout_en_US" msgid="1362581347576714579">"angielski (USA) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_no_language" msgid="141420857808801746">"Brak języka"</string> <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Brak języka (QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="1177848172397202890">"Brak języka (QWERTZ)"</string> diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml index 8fa997574..59404b8e8 100644 --- a/java/res/values-pt-rPT/strings.xml +++ b/java/res/values-pt-rPT/strings.xml @@ -118,10 +118,8 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Tema do teclado"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Inglês (RU)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Inglês (EUA)"</string> - <!-- no translation found for subtype_with_layout_en_GB (2179097748724725906) --> - <skip /> - <!-- no translation found for subtype_with_layout_en_US (1362581347576714579) --> - <skip /> + <string name="subtype_with_layout_en_GB" msgid="2179097748724725906">"Inglês (RU) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> + <string name="subtype_with_layout_en_US" msgid="1362581347576714579">"Inglês (EUA) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_no_language" msgid="141420857808801746">"Nenhum idioma"</string> <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nenhum idioma (QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="1177848172397202890">"Nenhum idioma (QWERTZ)"</string> diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml index 207aaa7a8..95d7793a3 100644 --- a/java/res/values-ro/strings.xml +++ b/java/res/values-ro/strings.xml @@ -118,10 +118,8 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Temă pentru tastatură"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Engleză (Marea Britanie)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Engleză (S.U.A.)"</string> - <!-- no translation found for subtype_with_layout_en_GB (2179097748724725906) --> - <skip /> - <!-- no translation found for subtype_with_layout_en_US (1362581347576714579) --> - <skip /> + <string name="subtype_with_layout_en_GB" msgid="2179097748724725906">"Engleză (Regatul Unit) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> + <string name="subtype_with_layout_en_US" msgid="1362581347576714579">"Engleză (S.U.A.) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_no_language" msgid="141420857808801746">"Nicio limbă"</string> <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nicio limbă (QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="1177848172397202890">"Nicio limbă (QWERTZ)"</string> diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml index 7066d8b9d..c0c8433ef 100644 --- a/java/res/values-sk/strings.xml +++ b/java/res/values-sk/strings.xml @@ -118,10 +118,8 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Motív klávesnice"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Anglická klávesnica (UK)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Anglická klávesnica (US)"</string> - <!-- no translation found for subtype_with_layout_en_GB (2179097748724725906) --> - <skip /> - <!-- no translation found for subtype_with_layout_en_US (1362581347576714579) --> - <skip /> + <string name="subtype_with_layout_en_GB" msgid="2179097748724725906">"angličtina (VB) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> + <string name="subtype_with_layout_en_US" msgid="1362581347576714579">"angličtina (USA) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_no_language" msgid="141420857808801746">"Žiadny jazyk"</string> <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Žiadny jazyk (QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="1177848172397202890">"Žiadny jazyk (QWERTZ)"</string> diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml index fb09889fd..9d247446d 100644 --- a/java/res/values-sv/strings.xml +++ b/java/res/values-sv/strings.xml @@ -118,10 +118,8 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Tangentbordstema"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Engelskt (brittiskt)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Engelskt (amerikanskt)"</string> - <!-- no translation found for subtype_with_layout_en_GB (2179097748724725906) --> - <skip /> - <!-- no translation found for subtype_with_layout_en_US (1362581347576714579) --> - <skip /> + <string name="subtype_with_layout_en_GB" msgid="2179097748724725906">"Engelskt (brittiskt) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> + <string name="subtype_with_layout_en_US" msgid="1362581347576714579">"Engelskt (amerikanskt) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_no_language" msgid="141420857808801746">"Inget språk"</string> <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Inget språk (QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="1177848172397202890">"Inget språk (QWERTZ)"</string> diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml index cb6d719b7..c6fed0449 100644 --- a/java/res/values-uk/strings.xml +++ b/java/res/values-uk/strings.xml @@ -118,10 +118,8 @@ <string name="keyboard_layout" msgid="8451164783510487501">"Тема клавіатури"</string> <string name="subtype_en_GB" msgid="88170601942311355">"Англійська (Великобританія)"</string> <string name="subtype_en_US" msgid="6160452336634534239">"Англійська (США)"</string> - <!-- no translation found for subtype_with_layout_en_GB (2179097748724725906) --> - <skip /> - <!-- no translation found for subtype_with_layout_en_US (1362581347576714579) --> - <skip /> + <string name="subtype_with_layout_en_GB" msgid="2179097748724725906">"Англійська (Великобр.) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> + <string name="subtype_with_layout_en_US" msgid="1362581347576714579">"Англійська (США) (<xliff:g id="LAYOUT">%s</xliff:g>)"</string> <string name="subtype_no_language" msgid="141420857808801746">"Мову не вибрано"</string> <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Немає мови (QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="1177848172397202890">"Без мови (QWERTZ)"</string> diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 011b512e8..fd8f7827f 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -711,6 +711,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen @Override public void onWindowHidden() { + if (ProductionFlag.IS_EXPERIMENTAL) { + ResearchLogger.latinIME_onWindowHidden(mLastSelectionStart, mLastSelectionEnd, + getCurrentInputConnection()); + } super.onWindowHidden(); KeyboardView inputView = mKeyboardSwitcher.getKeyboardView(); if (inputView != null) inputView.closing(); @@ -741,7 +745,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen int composingSpanStart, int composingSpanEnd) { super.onUpdateSelection(oldSelStart, oldSelEnd, newSelStart, newSelEnd, composingSpanStart, composingSpanEnd); - if (DEBUG) { Log.i(TAG, "onUpdateSelection: oss=" + oldSelStart + ", ose=" + oldSelEnd @@ -753,9 +756,15 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen + ", ce=" + composingSpanEnd); } if (ProductionFlag.IS_EXPERIMENTAL) { + final boolean expectingUpdateSelectionFromLogger = + ResearchLogger.getAndClearLatinIMEExpectingUpdateSelection(); ResearchLogger.latinIME_onUpdateSelection(mLastSelectionStart, mLastSelectionEnd, oldSelStart, oldSelEnd, newSelStart, newSelEnd, composingSpanStart, - composingSpanEnd); + composingSpanEnd, mExpectingUpdateSelection, + expectingUpdateSelectionFromLogger); + if (expectingUpdateSelectionFromLogger) { + return; + } } // TODO: refactor the following code to be less contrived. diff --git a/java/src/com/android/inputmethod/latin/ResearchLogger.java b/java/src/com/android/inputmethod/latin/ResearchLogger.java index 566af7061..92a9633de 100644 --- a/java/src/com/android/inputmethod/latin/ResearchLogger.java +++ b/java/src/com/android/inputmethod/latin/ResearchLogger.java @@ -17,6 +17,7 @@ package com.android.inputmethod.latin; import android.content.SharedPreferences; +import android.content.SharedPreferences.Editor; import android.inputmethodservice.InputMethodService; import android.os.Build; import android.os.Handler; @@ -29,6 +30,7 @@ import android.util.Log; import android.view.MotionEvent; import android.view.inputmethod.CompletionInfo; import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputConnection; import com.android.inputmethod.keyboard.Key; import com.android.inputmethod.keyboard.KeyDetector; @@ -47,6 +49,7 @@ import java.nio.CharBuffer; import java.nio.channels.FileChannel; import java.nio.charset.Charset; import java.util.Map; +import java.util.UUID; /** * Logs the use of the LatinIME keyboard. @@ -59,13 +62,19 @@ import java.util.Map; public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChangeListener { private static final String TAG = ResearchLogger.class.getSimpleName(); private static final String PREF_USABILITY_STUDY_MODE = "usability_study_mode"; + private static final String PREF_RESEARCH_LOGGER_UUID_STRING = "pref_research_logger_uuid"; private static final boolean DEBUG = false; private static final ResearchLogger sInstance = new ResearchLogger(new LogFileManager()); + private static final int MAX_INPUTVIEW_LENGTH_TO_CAPTURE = 8192; // must be >=1 public static boolean sIsLogging = false; /* package */ final Handler mLoggingHandler; private InputMethodService mIms; + // set when LatinIME should ignore a onUpdateSelection() callback that + // arises from operations in this class + private static boolean mLatinIMEExpectingUpdateSelection = false; + /** * Isolates management of files. This variable should never be null, but can be changed * to support testing. @@ -336,6 +345,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang private static final boolean LATINIME_DELETESURROUNDINGTEXT_ENABLED = DEFAULT_ENABLED; private static final boolean LATINIME_DOUBLESPACEAUTOPERIOD_ENABLED = DEFAULT_ENABLED; private static final boolean LATINIME_ONDISPLAYCOMPLETIONS_ENABLED = DEFAULT_ENABLED; + private static final boolean LATINIME_ONWINDOWHIDDEN_ENABLED = DEFAULT_ENABLED; private static final boolean LATINIME_ONSTARTINPUTVIEWINTERNAL_ENABLED = DEFAULT_ENABLED; private static final boolean LATINIME_ONUPDATESELECTION_ENABLED = DEFAULT_ENABLED; private static final boolean LATINIME_PERFORMEDITORACTION_ENABLED = DEFAULT_ENABLED; @@ -528,11 +538,50 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang } } + /* package */ static boolean getAndClearLatinIMEExpectingUpdateSelection() { + boolean returnValue = mLatinIMEExpectingUpdateSelection; + mLatinIMEExpectingUpdateSelection = false; + return returnValue; + } + + public static void latinIME_onWindowHidden(final int savedSelectionStart, + final int savedSelectionEnd, final InputConnection ic) { + if (UnsLogGroup.LATINIME_ONWINDOWHIDDEN_ENABLED) { + if (ic != null) { + ic.beginBatchEdit(); + ic.performContextMenuAction(android.R.id.selectAll); + CharSequence charSequence = ic.getSelectedText(0); + ic.setSelection(savedSelectionStart, savedSelectionEnd); + ic.endBatchEdit(); + mLatinIMEExpectingUpdateSelection = true; + if (TextUtils.isEmpty(charSequence)) { + logUnstructured("LatinIME_onWindowHidden", "<no text>"); + } else { + if (charSequence.length() > MAX_INPUTVIEW_LENGTH_TO_CAPTURE) { + // do not cut in the middle of a supplementary character + int length = MAX_INPUTVIEW_LENGTH_TO_CAPTURE; + if (!Character.isLetter(charSequence.charAt(length))) { + length--; + } + final CharSequence truncatedCharSequence = charSequence.subSequence(0, + length); + logUnstructured("LatinIME_onWindowHidden", truncatedCharSequence.toString() + + "<truncated>"); + } else { + logUnstructured("LatinIME_onWindowHidden", charSequence.toString()); + } + } + } + } + } + public static void latinIME_onStartInputViewInternal(final EditorInfo editorInfo, final SharedPreferences prefs) { if (UnsLogGroup.LATINIME_ONSTARTINPUTVIEWINTERNAL_ENABLED) { final StringBuilder builder = new StringBuilder(); builder.append("onStartInputView: editorInfo:"); + builder.append("\tpackageName="); + builder.append(editorInfo.packageName); builder.append("\tinputType="); builder.append(Integer.toHexString(editorInfo.inputType)); builder.append("\timeOptions="); @@ -544,14 +593,28 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang Object value = entry.getValue(); builder.append("=" + ((value == null) ? "<null>" : value.toString())); } + builder.append("\tuuid="); builder.append(getUUID(prefs)); logUnstructured("LatinIME_onStartInputViewInternal", builder.toString()); } } + private static String getUUID(final SharedPreferences prefs) { + String uuidString = prefs.getString(PREF_RESEARCH_LOGGER_UUID_STRING, null); + if (null == uuidString) { + UUID uuid = UUID.randomUUID(); + uuidString = uuid.toString(); + Editor editor = prefs.edit(); + editor.putString(PREF_RESEARCH_LOGGER_UUID_STRING, uuidString); + editor.apply(); + } + return uuidString; + } + public static void latinIME_onUpdateSelection(final int lastSelectionStart, final int lastSelectionEnd, final int oldSelStart, final int oldSelEnd, final int newSelStart, final int newSelEnd, final int composingSpanStart, - final int composingSpanEnd) { + final int composingSpanEnd, final boolean expectingUpdateSelection, + final boolean expectingUpdateSelectionFromLogger) { if (UnsLogGroup.LATINIME_ONUPDATESELECTION_ENABLED) { final String s = "onUpdateSelection: oss=" + oldSelStart + ", ose=" + oldSelEnd @@ -560,7 +623,9 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang + ", nss=" + newSelStart + ", nse=" + newSelEnd + ", cs=" + composingSpanStart - + ", ce=" + composingSpanEnd; + + ", ce=" + composingSpanEnd + + ", eus=" + expectingUpdateSelection + + ", eusfl=" + expectingUpdateSelectionFromLogger; logUnstructured("LatinIME_onUpdateSelection", s); } } @@ -754,4 +819,4 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang logUnstructured("SuggestionsView_setSuggestions", mSuggestedWords.toString()); } } -}
\ No newline at end of file +} |