aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/res/values-el/strings.xml2
-rw-r--r--java/res/values-nl/strings.xml2
-rw-r--r--java/res/values-ro/strings.xml2
-rw-r--r--java/res/values-tl/strings.xml2
-rw-r--r--java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java15
-rw-r--r--java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java2
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java9
-rw-r--r--java/src/com/android/inputmethod/latin/SubtypeSwitcher.java6
8 files changed, 26 insertions, 14 deletions
diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml
index 70f1d48c5..305bb4fe2 100644
--- a/java/res/values-el/strings.xml
+++ b/java/res/values-el/strings.xml
@@ -48,7 +48,7 @@
<string name="bigram_suggestion" msgid="1323347224043514969">"Προτάσεις bigram"</string>
<string name="bigram_suggestion_summary" msgid="4383845146070101531">"Χρήση προηγούμενης λέξης για τη βελτίωση πρότασης"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Αποθηκεύτηκε"</string>
- <string name="label_go_key" msgid="1635148082137219148">"Μετάβαση"</string>
+ <string name="label_go_key" msgid="1635148082137219148">"Μετ."</string>
<string name="label_next_key" msgid="362972844525672568">"Επόμενο"</string>
<string name="label_done_key" msgid="2441578748772529288">"Τέλος"</string>
<string name="label_send_key" msgid="2815056534433717444">"Αποστολή"</string>
diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml
index e52ad2e2a..0efb45b7b 100644
--- a/java/res/values-nl/strings.xml
+++ b/java/res/values-nl/strings.xml
@@ -48,7 +48,7 @@
<string name="bigram_suggestion" msgid="1323347224043514969">"Digram-suggesties"</string>
<string name="bigram_suggestion_summary" msgid="4383845146070101531">"Vorig woord gebruiken om suggestie te verbeteren"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: opgeslagen"</string>
- <string name="label_go_key" msgid="1635148082137219148">"Beginnen"</string>
+ <string name="label_go_key" msgid="1635148082137219148">"Start"</string>
<string name="label_next_key" msgid="362972844525672568">"Volgende"</string>
<string name="label_done_key" msgid="2441578748772529288">"Gereed"</string>
<string name="label_send_key" msgid="2815056534433717444">"Verzenden"</string>
diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml
index a0b5df381..c9639a807 100644
--- a/java/res/values-ro/strings.xml
+++ b/java/res/values-ro/strings.xml
@@ -48,7 +48,7 @@
<string name="bigram_suggestion" msgid="1323347224043514969">"Sugestii pentru cuvinte de două litere"</string>
<string name="bigram_suggestion_summary" msgid="4383845146070101531">"Utilizaţi cuvântul anterior pentru a îmbunătăţi sugestia"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: salvat"</string>
- <string name="label_go_key" msgid="1635148082137219148">"Accesaţi"</string>
+ <string name="label_go_key" msgid="1635148082137219148">"OK"</string>
<string name="label_next_key" msgid="362972844525672568">"Înainte"</string>
<string name="label_done_key" msgid="2441578748772529288">"Terminat"</string>
<string name="label_send_key" msgid="2815056534433717444">"Trimiteţi"</string>
diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml
index ce9abf8bd..5906b5874 100644
--- a/java/res/values-tl/strings.xml
+++ b/java/res/values-tl/strings.xml
@@ -48,7 +48,7 @@
<string name="bigram_suggestion" msgid="1323347224043514969">"Mga Suhestiyon na Bigram"</string>
<string name="bigram_suggestion_summary" msgid="4383845146070101531">"Gamitin ang nakaraang salita upang pahusayin ang suhestiyon"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Na-save"</string>
- <string name="label_go_key" msgid="1635148082137219148">"Pumunta"</string>
+ <string name="label_go_key" msgid="1635148082137219148">"Punta"</string>
<string name="label_next_key" msgid="362972844525672568">"Susunod"</string>
<string name="label_done_key" msgid="2441578748772529288">"Tapos na"</string>
<string name="label_send_key" msgid="2815056534433717444">"Ipadala"</string>
diff --git a/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java b/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java
index 2b7e25591..0c2a58ea9 100644
--- a/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java
+++ b/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java
@@ -67,7 +67,6 @@ public class InputMethodManagerCompatWrapper {
// For the compatibility, IMM will create dummy subtypes if subtypes are not found.
// This is required to be false if the current behavior is broken. For now, it's ok to be true.
- private static final boolean ALLOW_DUMMY_SUBTYPE = true;
private static final boolean HAS_VOICE_FUNCTION = true;
private static final String VOICE_MODE = "voice";
private static final String KEYBOARD_MODE = "keyboard";
@@ -119,11 +118,13 @@ public class InputMethodManagerCompatWrapper {
Object retval = CompatUtils.invoke(mImm, null, METHOD_getEnabledInputMethodSubtypeList,
(imi != null ? imi.getInputMethodInfo() : null), allowsImplicitlySelectedSubtypes);
if (retval == null || !(retval instanceof List) || ((List<?>)retval).isEmpty()) {
- if (!ALLOW_DUMMY_SUBTYPE) {
+ if (InputMethodServiceCompatWrapper.
+ CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) {
// Returns an empty list
return Collections.emptyList();
}
// Creates dummy subtypes
+ @SuppressWarnings("unused")
List<InputMethodSubtypeCompatWrapper> subtypeList =
new ArrayList<InputMethodSubtypeCompatWrapper>();
InputMethodSubtypeCompatWrapper keyboardSubtype = getLastResortSubtype(KEYBOARD_MODE);
@@ -159,11 +160,13 @@ public class InputMethodManagerCompatWrapper {
getShortcutInputMethodsAndSubtypes() {
Object retval = CompatUtils.invoke(mImm, null, METHOD_getShortcutInputMethodsAndSubtypes);
if (retval == null || !(retval instanceof Map) || ((Map<?, ?>)retval).isEmpty()) {
- if (!ALLOW_DUMMY_SUBTYPE) {
+ if (InputMethodServiceCompatWrapper.
+ CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) {
// Returns an empty map
return Collections.emptyMap();
}
// Creates dummy subtypes
+ @SuppressWarnings("unused")
InputMethodInfoCompatWrapper imi = getLatinImeInputMethodInfo();
InputMethodSubtypeCompatWrapper voiceSubtype = getLastResortSubtype(VOICE_MODE);
if (imi != null && voiceSubtype != null) {
@@ -196,8 +199,10 @@ public class InputMethodManagerCompatWrapper {
public void setInputMethodAndSubtype(
IBinder token, String id, InputMethodSubtypeCompatWrapper subtype) {
- CompatUtils.invoke(mImm, null, METHOD_setInputMethodAndSubtype,
- token, id, subtype.getOriginalObject());
+ if (subtype != null && subtype.hasOriginalObject()) {
+ CompatUtils.invoke(mImm, null, METHOD_setInputMethodAndSubtype,
+ token, id, subtype.getOriginalObject());
+ }
}
public boolean switchToLastInputMethod(IBinder token) {
diff --git a/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java b/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java
index 7d107b590..6f96fb3c2 100644
--- a/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java
+++ b/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java
@@ -28,7 +28,7 @@ public class InputMethodServiceCompatWrapper extends InputMethodService {
// For the API level 11 or later, LatinIME should override onCurrentInputMethodSubtypeChanged().
// For the API level 10 or previous, we handle the "subtype changed" events by ourselves
// without having support from framework -- onCurrentInputMethodSubtypeChanged().
- private static final boolean CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED = false;
+ public static final boolean CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED = false;
private InputMethodManagerCompatWrapper mImm;
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
index d0464dd94..a78ff7e84 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
@@ -18,6 +18,7 @@ package com.android.inputmethod.latin;
import android.content.ContentResolver;
import android.content.Context;
+import android.content.res.AssetFileDescriptor;
import android.net.Uri;
import android.text.TextUtils;
@@ -96,9 +97,9 @@ public class BinaryDictionaryFileDumper {
// file.
final ContentResolver resolver = context.getContentResolver();
final Uri dictionaryPackUri = getProviderUri(locale);
- final InputStream stream = resolver.openInputStream(dictionaryPackUri);
- if (null == stream) return null;
- return copyFileTo(stream, getCacheFileNameForLocale(locale, context));
+ final AssetFileDescriptor afd = resolver.openAssetFileDescriptor(dictionaryPackUri, "r");
+ if (null == afd) return null;
+ return copyFileTo(afd.createInputStream(), getCacheFileNameForLocale(locale, context));
}
/**
@@ -128,6 +129,8 @@ public class BinaryDictionaryFileDumper {
/**
* Copies the data in an input stream to a target file, creating the file if necessary and
* overwriting it if it already exists.
+ * @param input the stream to be copied.
+ * @param outputFileName the name of a file to copy the data to. It is created if necessary.
*/
private static String copyFileTo(final InputStream input, final String outputFileName)
throws FileNotFoundException, IOException {
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index 2cdc4d2cd..632195533 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -382,12 +382,16 @@ public class SubtypeSwitcher {
return false;
if (mShortcutSubtype == null)
return true;
+ // For compatibility, if the shortcut subtype is dummy, we assume the shortcut IME
+ // (built-in voice dummy subtype) is available.
+ if (!mShortcutSubtype.hasOriginalObject()) return true;
final boolean allowsImplicitlySelectedSubtypes = true;
for (final InputMethodSubtypeCompatWrapper enabledSubtype :
mImm.getEnabledInputMethodSubtypeList(
mShortcutInputMethodInfo, allowsImplicitlySelectedSubtypes)) {
- if (enabledSubtype.equals(mShortcutSubtype))
+ if (enabledSubtype.equals(mShortcutSubtype)) {
return true;
+ }
}
return false;
}