diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/res/layout-xlarge/recognition_status.xml | 101 | ||||
-rw-r--r-- | java/res/layout/recognition_status.xml | 27 | ||||
-rw-r--r-- | java/res/values/donottranslate-altchars.xml | 3 | ||||
-rw-r--r-- | java/res/xml/kbd_qwerty_f1.xml | 7 | ||||
-rw-r--r-- | java/res/xml/kbd_qwerty_row4.xml | 38 | ||||
-rw-r--r-- | java/res/xml/prefs.xml | 8 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java | 11 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java | 8 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatWrapper.java | 4 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/SuggestedWords.java | 8 |
10 files changed, 164 insertions, 51 deletions
diff --git a/java/res/layout-xlarge/recognition_status.xml b/java/res/layout-xlarge/recognition_status.xml new file mode 100644 index 000000000..40bc09823 --- /dev/null +++ b/java/res/layout-xlarge/recognition_status.xml @@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> +<RelativeLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:background="@drawable/background_voice"> + <LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/popup_layout" + android:orientation="vertical" + android:layout_height="371dip" + android:layout_width="500dip" + android:layout_centerInParent="true" + android:background="@drawable/vs_dialog_red"> + <TextView + android:id="@+id/text" + android:text="@string/voice_error" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:singleLine="true" + android:layout_marginTop="10dip" + android:textSize="28sp" + android:textColor="#ffffff" + android:layout_gravity="center" + android:visibility="invisible"/> + <RelativeLayout + android:layout_height="0dip" + android:layout_width="match_parent" + android:layout_weight="1.0"> + <com.android.inputmethod.deprecated.voice.SoundIndicator + android:id="@+id/sound_indicator" + android:src="@drawable/mic_full" + android:background="@drawable/mic_base" + android:adjustViewBounds="true" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:layout_centerInParent="true" + android:visibility="gone"/> + <ImageView + android:id="@+id/image" + android:src="@drawable/mic_slash" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:layout_centerInParent="true" + android:visibility="visible"/> + <ProgressBar + android:id="@+id/progress" + android:indeterminate="true" + android:indeterminateOnly="false" + android:layout_height="60dip" + android:layout_width="60dip" + android:layout_centerInParent="true" + android:visibility="gone"/> + </RelativeLayout> + <!-- + The text is set by the code. We specify a random text (voice_error), so the + text view does not have a zero height. This is necessary to keep the slash + mic and the recording mic is the same position + --> + <TextView + android:id="@+id/language" + android:text="@string/voice_error" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:singleLine="true" + android:textSize="14sp" + android:layout_marginBottom="3dip" + android:layout_gravity="center" + android:textColor="#ffffff" + android:visibility="invisible"/> + <Button + android:id="@+id/button" + android:layout_width="match_parent" + android:layout_height="54dip" + android:singleLine="true" + android:focusable="true" + android:text="@string/cancel" + android:layout_gravity="center_horizontal" + android:background="@drawable/btn_center" + android:textColor="#ffffff" + android:textSize="19sp" /> + </LinearLayout> +</RelativeLayout> diff --git a/java/res/layout/recognition_status.xml b/java/res/layout/recognition_status.xml index 45f68974a..a2ddb7c50 100644 --- a/java/res/layout/recognition_status.xml +++ b/java/res/layout/recognition_status.xml @@ -1,19 +1,19 @@ <?xml version="1.0" encoding="utf-8"?> <!-- -/* +/* ** ** Copyright 2009, The Android Open Source Project ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at ** -** http://www.apache.org/licenses/LICENSE-2.0 +** http://www.apache.org/licenses/LICENSE-2.0 ** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and ** limitations under the License. */ --> @@ -37,7 +37,7 @@ android:layout_width="wrap_content" android:singleLine="true" android:layout_marginTop="10dip" - android:textSize="28sp" + android:textSize="20sp" android:textColor="#ffffff" android:layout_gravity="center" android:visibility="invisible"/> @@ -81,7 +81,8 @@ android:layout_height="wrap_content" android:layout_width="wrap_content" android:singleLine="true" - android:textSize="14sp" + android:textSize="15sp" + android:layout_marginTop="3dip" android:layout_marginBottom="3dip" android:layout_gravity="center" android:textColor="#ffffff" @@ -89,13 +90,13 @@ <Button android:id="@+id/button" android:layout_width="match_parent" - android:layout_height="54dip" + android:layout_height="30dip" android:singleLine="true" android:focusable="true" android:text="@string/cancel" android:layout_gravity="center_horizontal" android:background="@drawable/btn_center" android:textColor="#ffffff" - android:textSize="19sp" /> + android:textSize="15sp" /> </LinearLayout> </RelativeLayout> diff --git a/java/res/values/donottranslate-altchars.xml b/java/res/values/donottranslate-altchars.xml index 621a2ea92..883ccb71d 100644 --- a/java/res/values/donottranslate-altchars.xml +++ b/java/res/values/donottranslate-altchars.xml @@ -48,7 +48,8 @@ <string name="alternates_for_currency_euro">¢,£,$,¥,₱</string> <string name="alternates_for_currency_pound">¢,$,€,¥,₱</string> <string name="alternates_for_smiley">":-)|:-) ,:-(|:-( ,;-)|;-) ,:-P|:-P ,=-O|=-O ,:-*|:-* ,:O|:O ,B-)|B-) ,:-$|:-$ ,:-!|:-! ,:-[|:-[ ,O:-)|O:-) ,:-\\\\\\\\|:-\\\\\\\\ ,:\'(|:\'( ,:-D|:-D "</string> - <string name="alternates_for_punctuation">":,/,&,(,),-,+,;,\@,\',\",\?,!,\\,"</string> + <string name="alternates_for_punctuation">"\?,!,\\,,:,-,\',\",(,),/,;,+,&,\@"</string> + <string name="alternates_for_web_tab_punctuation">".,\?,!,\\,,:,-,\',\",(,),/,;,+,&,\@"</string> <string name="keylabel_for_popular_domain">".com"</string> <!-- popular web domains for the locale - most popular, displayed on the keyboard --> <string name="alternates_for_popular_domain">".net,.org,.gov,.edu"</string> diff --git a/java/res/xml/kbd_qwerty_f1.xml b/java/res/xml/kbd_qwerty_f1.xml index 3ebdd1039..d0e2884e1 100644 --- a/java/res/xml/kbd_qwerty_f1.xml +++ b/java/res/xml/kbd_qwerty_f1.xml @@ -45,6 +45,13 @@ latin:keyStyle="micKeyStyle" /> </case> <!-- latin:hasVoiceKey="false" --> + <case + latin:mode="web" + > + <Key + latin:keyLabel="." + latin:keyStyle="settingsPopupStyle" /> + </case> <default> <Key latin:keyLabel="," diff --git a/java/res/xml/kbd_qwerty_row4.xml b/java/res/xml/kbd_qwerty_row4.xml index 18ff608dd..82f5a4a92 100644 --- a/java/res/xml/kbd_qwerty_row4.xml +++ b/java/res/xml/kbd_qwerty_row4.xml @@ -43,8 +43,10 @@ latin:mode="web" > <Key - latin:keyStyle="tabKeyStyle" - latin:keyWidth="10%p" /> + latin:keyHintIcon="@drawable/hint_popup" + latin:popupCharacters="@string/alternates_for_web_tab_punctuation" + latin:maxPopupKeyboardColumn="8" + latin:keyStyle="tabKeyStyle" /> </case> <default> <Key @@ -83,28 +85,28 @@ latin:keyStyle="settingsKeyStyle" /> <include latin:keyboardLayout="@xml/kbd_qwerty_f1" /> + <Key + latin:keyStyle="spaceKeyStyle" + latin:keyWidth="30%p" /> <switch> <case latin:mode="web" > - <Key - latin:keyStyle="spaceKeyStyle" - latin:keyWidth="30%p" /> - <Key + <Key + latin:keyHintIcon="@drawable/hint_popup" + latin:popupCharacters="@string/alternates_for_web_tab_punctuation" + latin:maxPopupKeyboardColumn="8" latin:keyStyle="tabKeyStyle" /> </case> <default> <Key - latin:keyStyle="spaceKeyStyle" - latin:keyWidth="30%p" /> + latin:keyLabel="." + latin:keyHintIcon="@drawable/hint_popup" + latin:popupCharacters="@string/alternates_for_punctuation" + latin:maxPopupKeyboardColumn="7" + latin:keyStyle="functionalKeyStyle" /> </default> </switch> - <Key - latin:keyLabel="." - latin:keyHintIcon="@drawable/hint_popup" - latin:popupCharacters="@string/alternates_for_punctuation" - latin:maxPopupKeyboardColumn="7" - latin:keyStyle="functionalKeyStyle" /> <switch> <case latin:mode="im" @@ -114,14 +116,6 @@ latin:keyWidth="25%p" latin:keyEdgeFlags="right" /> </case> - <case - latin:mode="web" - > - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="15%p" - latin:keyEdgeFlags="right" /> - </case> <default> <Key latin:keyStyle="returnKeyStyle" diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml index afe7be914..cbfc3c39d 100644 --- a/java/res/xml/prefs.xml +++ b/java/res/xml/prefs.xml @@ -107,7 +107,7 @@ android:title="@string/prefs_enable_log" android:summary="@string/prefs_description_log" android:persistent="true" - android:defaultValue="false" /> + android:defaultValue="true" /> <ListPreference android:key="pref_keyboard_layout_20100902" android:title="@string/keyboard_layout" @@ -115,12 +115,12 @@ android:entryValues="@array/keyboard_layout_modes_values" android:entries="@array/keyboard_layout_modes" android:defaultValue="@string/config_default_keyboard_theme_id" /> - <Preference + <!-- <Preference android:title="Debug Settings" android:key="debug_settings"> <intent android:action="android.intent.action.MAIN" android:targetPackage="com.android.inputmethod.latin" android:targetClass="com.android.inputmethod.latin.DebugSettings" /> - </Preference> -</PreferenceScreen>
\ No newline at end of file + </Preference>--> +</PreferenceScreen> diff --git a/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java b/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java index 0c2a58ea9..d99f40765 100644 --- a/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java +++ b/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java @@ -67,7 +67,8 @@ 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 HAS_VOICE_FUNCTION = true; + public static final boolean FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES = + !InputMethodServiceCompatWrapper.CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED; private static final String VOICE_MODE = "voice"; private static final String KEYBOARD_MODE = "keyboard"; @@ -118,8 +119,7 @@ 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 (InputMethodServiceCompatWrapper. - CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) { + if (!FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES) { // Returns an empty list return Collections.emptyList(); } @@ -148,7 +148,7 @@ public class InputMethodManagerCompatWrapper { @SuppressWarnings("unused") private InputMethodSubtypeCompatWrapper getLastResortSubtype(String mode) { - if (VOICE_MODE.equals(mode) && !HAS_VOICE_FUNCTION) + if (VOICE_MODE.equals(mode) && !FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES) return null; Locale inputLocale = SubtypeSwitcher.getInstance().getInputLocale(); if (inputLocale == null) @@ -160,8 +160,7 @@ public class InputMethodManagerCompatWrapper { getShortcutInputMethodsAndSubtypes() { Object retval = CompatUtils.invoke(mImm, null, METHOD_getShortcutInputMethodsAndSubtypes); if (retval == null || !(retval instanceof Map) || ((Map<?, ?>)retval).isEmpty()) { - if (InputMethodServiceCompatWrapper. - CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) { + if (!FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES) { // Returns an empty map return Collections.emptyMap(); } diff --git a/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java b/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java index d6afd06c5..828aea41f 100644 --- a/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java +++ b/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java @@ -47,11 +47,17 @@ public class InputMethodServiceCompatWrapper extends InputMethodService { @SuppressWarnings("unused") public void notifyOnCurrentInputMethodSubtypeChanged(InputMethodSubtypeCompatWrapper subtype) { // Do nothing when the API level is 11 or later - if (CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) return; + // and FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES is not true + if (CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED && !InputMethodManagerCompatWrapper. + FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES) { + return; + } if (subtype == null) { subtype = mImm.getCurrentInputMethodSubtype(); } if (subtype != null) { + if (!InputMethodManagerCompatWrapper.FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES + && !subtype.isDummy()) return; if (!InputMethodManagerCompatWrapper.SUBTYPE_SUPPORTED) { LanguageSwitcherProxy.getInstance().setLocale(subtype.getLocale()); } diff --git a/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatWrapper.java b/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatWrapper.java index 86c8af37f..806c355a9 100644 --- a/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatWrapper.java +++ b/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatWrapper.java @@ -116,6 +116,10 @@ public final class InputMethodSubtypeCompatWrapper extends AbstractCompatWrapper return (String)CompatUtils.invoke(mObj, null, METHOD_getExtraValueOf, key); } + public boolean isDummy() { + return !hasOriginalObject(); + } + @Override public boolean equals(Object o) { if (o instanceof InputMethodSubtypeCompatWrapper) { diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java index fe7aac7c2..a8cdfc02e 100644 --- a/java/src/com/android/inputmethod/latin/SuggestedWords.java +++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java @@ -32,14 +32,14 @@ public class SuggestedWords { public final List<SuggestedWordInfo> mSuggestedWordInfoList; private SuggestedWords(List<CharSequence> words, boolean typedWordValid, - boolean hasMinamlSuggestion, List<SuggestedWordInfo> suggestedWordInfoList) { + boolean hasMinimalSuggestion, List<SuggestedWordInfo> suggestedWordInfoList) { if (words != null) { mWords = words; } else { mWords = Collections.emptyList(); } mTypedWordValid = typedWordValid; - mHasMinimalSuggestion = hasMinamlSuggestion; + mHasMinimalSuggestion = hasMinimalSuggestion; mSuggestedWordInfoList = suggestedWordInfoList; } @@ -113,8 +113,8 @@ public class SuggestedWords { return this; } - public Builder setHasMinimalSuggestion(boolean hasMinamlSuggestion) { - mHasMinimalSuggestion = hasMinamlSuggestion; + public Builder setHasMinimalSuggestion(boolean hasMinimalSuggestion) { + mHasMinimalSuggestion = hasMinimalSuggestion; return this; } |