Merge "Import translations. DO NOT MERGE"
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index db68a14..8ed9a7e 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -1107,16 +1107,14 @@
private void writeExperimentalWebViewOptions() {
if (mExperimentalWebView != null) {
- SystemProperties.set(WebViewFactory.WEBVIEW_EXPERIMENTAL_PROPERTY,
- mExperimentalWebView.isChecked() ? "true" : null);
+ WebViewFactory.setUseExperimentalWebView(mExperimentalWebView.isChecked());
pokeSystemProperties();
}
}
private void updateExperimentalWebViewOptions() {
if (mExperimentalWebView != null) {
- updateCheckBox(mExperimentalWebView, SystemProperties.getBoolean(
- WebViewFactory.WEBVIEW_EXPERIMENTAL_PROPERTY, false));
+ updateCheckBox(mExperimentalWebView, WebViewFactory.useExperimentalWebView());
}
}
diff --git a/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java b/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java
index f3addf3..6ceb55e 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java
@@ -16,6 +16,7 @@
package com.android.settings.inputmethod;
+import com.android.internal.inputmethod.InputMethodUtils;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
@@ -145,7 +146,7 @@
InputMethodInfo imi = mInputMethodProperties.get(i);
if (id.equals(imi.getId())) {
selImi = imi;
- if (InputMethodAndSubtypeUtil.isSystemIme(imi)) {
+ if (InputMethodUtils.isSystemIme(imi)) {
InputMethodAndSubtypeUtil.setSubtypesPreferenceEnabled(
this, mInputMethodProperties, id, true);
// This is a built-in IME, so no need to warn.
diff --git a/src/com/android/settings/inputmethod/InputMethodAndSubtypeUtil.java b/src/com/android/settings/inputmethod/InputMethodAndSubtypeUtil.java
index 918b87e..936b1a6 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndSubtypeUtil.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndSubtypeUtil.java
@@ -16,6 +16,7 @@
package com.android.settings.inputmethod;
+import com.android.internal.inputmethod.InputMethodUtils;
import com.android.settings.SettingsPreferenceFragment;
import android.content.ContentResolver;
@@ -176,8 +177,9 @@
((CheckBoxPreference) pref).isChecked()
: enabledIMEAndSubtypesMap.containsKey(imiId);
final boolean isCurrentInputMethod = imiId.equals(currentInputMethodId);
- final boolean systemIme = isSystemIme(imi);
- if ((!hasHardKeyboard && isAlwaysCheckedIme(imi, context.getActivity(), imiCount))
+ final boolean systemIme = InputMethodUtils.isSystemIme(imi);
+ if ((!hasHardKeyboard && InputMethodSettingValuesWrapper.getInstance(
+ context.getActivity()).isAlwaysCheckedIme(imi, context.getActivity()))
|| isImeChecked) {
if (!enabledIMEAndSubtypesMap.containsKey(imiId)) {
// imiId has just been enabled
@@ -345,56 +347,4 @@
}
}
}
-
- public static boolean isSystemIme(InputMethodInfo property) {
- return (property.getServiceInfo().applicationInfo.flags
- & ApplicationInfo.FLAG_SYSTEM) != 0;
- }
-
- public static boolean isAuxiliaryIme(InputMethodInfo imi) {
- return imi.isAuxiliaryIme();
- }
-
- public static boolean isAlwaysCheckedIme(InputMethodInfo imi, Context context, int imiCount) {
- if (imiCount <= 1) {
- return true;
- }
- if (!isSystemIme(imi)) {
- return false;
- }
- if (isAuxiliaryIme(imi)) {
- return false;
- }
- if (isValidDefaultIme(imi, context)) {
- return true;
- }
- return containsSubtypeOf(imi, ENGLISH_LOCALE.getLanguage());
- }
-
- private static boolean isValidDefaultIme(InputMethodInfo imi, Context context) {
- if (imi.getIsDefaultResourceId() != 0) {
- try {
- Resources res = context.createPackageContext(
- imi.getPackageName(), 0).getResources();
- if (res.getBoolean(imi.getIsDefaultResourceId())
- && containsSubtypeOf(imi, context.getResources().getConfiguration().
- locale.getLanguage())) {
- return true;
- }
- } catch (PackageManager.NameNotFoundException ex) {
- } catch (Resources.NotFoundException ex) {
- }
- }
- return false;
- }
-
- private static boolean containsSubtypeOf(InputMethodInfo imi, String language) {
- final int N = imi.getSubtypeCount();
- for (int i = 0; i < N; ++i) {
- if (imi.getSubtypeAt(i).getLocale().startsWith(language)) {
- return true;
- }
- }
- return false;
- }
}
diff --git a/src/com/android/settings/inputmethod/InputMethodPreference.java b/src/com/android/settings/inputmethod/InputMethodPreference.java
index 56b6e67..e85b3fc 100644
--- a/src/com/android/settings/inputmethod/InputMethodPreference.java
+++ b/src/com/android/settings/inputmethod/InputMethodPreference.java
@@ -16,6 +16,7 @@
package com.android.settings.inputmethod;
+import com.android.internal.inputmethod.InputMethodUtils;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
@@ -44,7 +45,6 @@
import android.widget.Toast;
import java.text.Collator;
-import java.util.Comparator;
import java.util.List;
public class InputMethodPreference extends CheckBoxPreference {
@@ -91,9 +91,10 @@
mImm = imm;
mImi = imi;
updateSummary();
- mAlwaysChecked = InputMethodAndSubtypeUtil.isAlwaysCheckedIme(
- imi, fragment.getActivity(), imiCount);
- mIsSystemIme = InputMethodAndSubtypeUtil.isSystemIme(imi);
+ mAlwaysChecked = InputMethodSettingValuesWrapper.getInstance(
+ fragment.getActivity()).isAlwaysCheckedIme(
+ imi, fragment.getActivity());
+ mIsSystemIme = InputMethodUtils.isSystemIme(imi);
if (mAlwaysChecked) {
setEnabled(false);
}
diff --git a/src/com/android/settings/inputmethod/InputMethodSettingValuesWrapper.java b/src/com/android/settings/inputmethod/InputMethodSettingValuesWrapper.java
index 9575f72..b14f041 100644
--- a/src/com/android/settings/inputmethod/InputMethodSettingValuesWrapper.java
+++ b/src/com/android/settings/inputmethod/InputMethodSettingValuesWrapper.java
@@ -31,6 +31,7 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
/**
* This class is a wrapper for InputMethodSettings. You need to refresh internal states
@@ -39,6 +40,8 @@
*/
public class InputMethodSettingValuesWrapper {
private static final String TAG = InputMethodSettingValuesWrapper.class.getSimpleName();
+ private static final Locale ENGLISH_LOCALE = new Locale("en");
+
private static volatile InputMethodSettingValuesWrapper sInstance;
private final ArrayList<InputMethodInfo> mMethodList = new ArrayList<InputMethodInfo>();
private final HashMap<String, InputMethodInfo> mMethodMap =
@@ -104,4 +107,26 @@
return InputMethodUtils.getImeAndSubtypeDisplayName(context, imi, subtype);
}
}
+
+ public boolean isAlwaysCheckedIme(InputMethodInfo imi, Context context) {
+ if (getInputMethodList().size() <= 1) {
+ return true;
+ }
+ if (!InputMethodUtils.isSystemIme(imi)) {
+ return false;
+ }
+ return isValidSystemNonAuxAsciiCapableIme(imi, context);
+ }
+
+ private static boolean isValidSystemNonAuxAsciiCapableIme(
+ InputMethodInfo imi, Context context) {
+ if (imi.isAuxiliaryIme()) {
+ return false;
+ }
+ if (InputMethodUtils.isValidSystemDefaultIme(true /* isSystemReady */, imi, context)) {
+ return true;
+ }
+ return InputMethodUtils.containsSubtypeOf(
+ imi, ENGLISH_LOCALE.getLanguage(), null /* mode */);
+ }
}
diff --git a/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java b/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java
index 8f7029a..86c3e79 100644
--- a/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java
+++ b/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java
@@ -27,7 +27,6 @@
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
-import android.widget.Spinner;
import com.android.settings.R;
import com.android.settings.inputmethod.UserDictionaryAddWordContents.LocaleRenderer;
diff --git a/src/com/android/settings/inputmethod/UserDictionarySettingsUtils.java b/src/com/android/settings/inputmethod/UserDictionarySettingsUtils.java
index 2238b4b..e77f9c5 100644
--- a/src/com/android/settings/inputmethod/UserDictionarySettingsUtils.java
+++ b/src/com/android/settings/inputmethod/UserDictionarySettingsUtils.java
@@ -16,9 +16,11 @@
package com.android.settings.inputmethod;
+import com.android.settings.R;
import com.android.settings.Utils;
import android.content.Context;
+import android.text.TextUtils;
import java.util.Locale;
@@ -27,6 +29,11 @@
*/
public class UserDictionarySettingsUtils {
public static String getLocaleDisplayName(Context context, String localeStr) {
+ if (TextUtils.isEmpty(localeStr)) {
+ // CAVEAT: localeStr should not be null because a null locale stands for the system
+ // locale in UserDictionary.Words.addWord.
+ return context.getResources().getString(R.string.user_dict_settings_all_languages);
+ }
final Locale locale = Utils.createLocaleFromString(localeStr);
final Locale systemLocale = context.getResources().getConfiguration().locale;
return locale.getDisplayName(systemLocale);
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index cb35e10..24f56c1 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -646,6 +646,8 @@
ap = new AccessPoint(getActivity(), mAccessPointSavedState);
// For repeated orientation changes
mDlgAccessPoint = ap;
+ // Reset the saved access point data
+ mAccessPointSavedState = null;
}
}
// If it's still null, fine, it's for Add Network