auto import from //depot/cupcake/@136594
diff --git a/src/com/android/settings/LanguageSettings.java b/src/com/android/settings/LanguageSettings.java
index 8463d26..b5f325f 100644
--- a/src/com/android/settings/LanguageSettings.java
+++ b/src/com/android/settings/LanguageSettings.java
@@ -16,7 +16,6 @@
package com.android.settings;
-import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
@@ -28,37 +27,20 @@
import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
import android.provider.Settings;
-import android.provider.Settings.System;
import android.text.TextUtils;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodManager;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public class LanguageSettings extends PreferenceActivity {
- private final String[] mSettingsUiKey = {
- "auto_caps",
- "auto_replace",
- "auto_punctuate",
- };
-
- // Note: Order of this array should correspond to the order of the above array
- private final String[] mSettingsSystemId = {
- System.TEXT_AUTO_CAPS,
- System.TEXT_AUTO_REPLACE,
- System.TEXT_AUTO_PUNCTUATE,
- };
+ private boolean mHaveHardKeyboard;
- // Note: Order of this array should correspond to the order of the above array
- private final int[] mSettingsDefault = {
- 1,
- 1,
- 1,
- };
-
private List<InputMethodInfo> mInputMethodProperties;
+ private List<CheckBoxPreference> mCheckboxes;
final TextUtils.SimpleStringSplitter mStringColonSplitter
= new TextUtils.SimpleStringSplitter(':');
@@ -80,20 +62,15 @@
getPreferenceScreen().
removePreference(findPreference("language_category"));
}
-
+
Configuration config = getResources().getConfiguration();
if (config.keyboard != Configuration.KEYBOARD_QWERTY) {
getPreferenceScreen().removePreference(
getPreferenceScreen().findPreference("hardkeyboard_category"));
} else {
- ContentResolver resolver = getContentResolver();
- for (int i = 0; i < mSettingsUiKey.length; i++) {
- CheckBoxPreference pref = (CheckBoxPreference) findPreference(mSettingsUiKey[i]);
- pref.setChecked(System.getInt(resolver, mSettingsSystemId[i],
- mSettingsDefault[i]) > 0);
- }
+ mHaveHardKeyboard = true;
}
-
+ mCheckboxes = new ArrayList<CheckBoxPreference>();
onCreateIMM();
}
@@ -116,18 +93,27 @@
CharSequence label = property.loadLabel(getPackageManager());
// Add a check box.
- CheckBoxPreference chkbxPref = new CheckBoxPreference(this);
- chkbxPref.setKey(prefKey);
- chkbxPref.setTitle(label);
- textCategory.addPreference(chkbxPref);
+ // Don't show the toggle if it's the only keyboard in the system
+ if (mHaveHardKeyboard || N > 1) {
+ CheckBoxPreference chkbxPref = new CheckBoxPreference(this);
+ chkbxPref.setKey(prefKey);
+ chkbxPref.setTitle(label);
+ textCategory.addPreference(chkbxPref);
+ mCheckboxes.add(chkbxPref);
+ }
// If setting activity is available, add a setting screen entry.
if (null != property.getSettingsActivity()) {
PreferenceScreen prefScreen = new PreferenceScreen(this, null);
prefScreen.setKey(property.getSettingsActivity());
- CharSequence settingsLabel = getResources().getString(
- R.string.input_methods_settings_label_format, label);
- prefScreen.setTitle(settingsLabel);
+ prefScreen.setTitle(label);
+ if (N == 1) {
+ prefScreen.setSummary(getString(R.string.onscreen_keyboard_settings_summary));
+ } else {
+ CharSequence settingsLabel = getResources().getString(
+ R.string.input_methods_settings_label_format, label);
+ prefScreen.setSummary(settingsLabel);
+ }
textCategory.addPreference(prefScreen);
}
}
@@ -154,8 +140,11 @@
final String id = mInputMethodProperties.get(i).getId();
CheckBoxPreference pref = (CheckBoxPreference) findPreference(mInputMethodProperties
.get(i).getId());
- pref.setChecked(enabled.contains(id));
+ if (pref != null) {
+ pref.setChecked(enabled.contains(id));
+ }
}
+ updateCheckboxes();
mLastTickedInputMethodId = null;
}
@@ -173,7 +162,7 @@
final String id = mInputMethodProperties.get(i).getId();
CheckBoxPreference pref = (CheckBoxPreference) findPreference(id);
boolean hasIt = id.equals(mLastInputMethodId);
- if (pref.isChecked()) {
+ if ((N == 1 && !mHaveHardKeyboard) || (pref != null && pref.isChecked())) {
if (builder.length() > 0) builder.append(':');
builder.append(id);
if (firstEnabled < 0) {
@@ -200,18 +189,30 @@
Settings.Secure.DEFAULT_INPUT_METHOD, mLastInputMethodId);
}
- @Override
- public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
-
- // Physical keyboard stuff
- for (int i = 0; i < mSettingsUiKey.length; i++) {
- if (mSettingsUiKey[i].equals(preference.getKey())) {
- System.putInt(getContentResolver(), mSettingsSystemId[i],
- ((CheckBoxPreference)preference).isChecked()? 1 : 0);
- return true;
+ private void updateCheckboxes() {
+ final int count = mCheckboxes.size();
+ int nChecked = 0;
+ int iChecked = -1;
+ // See how many are checked and note the only or last checked one
+ for (int i = 0; i < count; i++) {
+ if (mCheckboxes.get(i).isChecked()) {
+ iChecked = i;
+ nChecked++;
}
}
-
+ //
+ if (nChecked == 1) {
+ mCheckboxes.get(iChecked).setEnabled(false);
+ } else {
+ for (int i = 0; i < count; i++) {
+ mCheckboxes.get(i).setEnabled(true);
+ }
+ }
+ }
+
+ @Override
+ public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+
// Input Method stuff
// Those monkeys kept committing suicide, so we add this property
// to disable this functionality
@@ -240,7 +241,7 @@
}
}
}
-
+ updateCheckboxes();
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
diff --git a/src/com/android/settings/PhysicalKeyboardSettings.java b/src/com/android/settings/PhysicalKeyboardSettings.java
new file mode 100644
index 0000000..acd0bd6
--- /dev/null
+++ b/src/com/android/settings/PhysicalKeyboardSettings.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 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
+ *
+ * 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.
+ */
+
+package com.android.settings;
+
+import android.content.ContentResolver;
+import android.os.Bundle;
+import android.preference.CheckBoxPreference;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceScreen;
+import android.provider.Settings.System;
+
+public class PhysicalKeyboardSettings extends PreferenceActivity {
+
+ private final String[] mSettingsUiKey = {
+ "auto_caps",
+ "auto_replace",
+ "auto_punctuate",
+ };
+
+ // Note: Order of this array should correspond to the order of the above array
+ private final String[] mSettingsSystemId = {
+ System.TEXT_AUTO_CAPS,
+ System.TEXT_AUTO_REPLACE,
+ System.TEXT_AUTO_PUNCTUATE,
+ };
+
+ // Note: Order of this array should correspond to the order of the above array
+ private final int[] mSettingsDefault = {
+ 1,
+ 1,
+ 1,
+ };
+
+ @Override
+ protected void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+
+ addPreferencesFromResource(R.xml.keyboard_settings);
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ ContentResolver resolver = getContentResolver();
+ for (int i = 0; i < mSettingsUiKey.length; i++) {
+ CheckBoxPreference pref = (CheckBoxPreference) findPreference(mSettingsUiKey[i]);
+ pref.setChecked(System.getInt(resolver, mSettingsSystemId[i],
+ mSettingsDefault[i]) > 0);
+ }
+ }
+
+
+ @Override
+ public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+
+ // Physical keyboard stuff
+ for (int i = 0; i < mSettingsUiKey.length; i++) {
+ if (mSettingsUiKey[i].equals(preference.getKey())) {
+ System.putInt(getContentResolver(), mSettingsSystemId[i],
+ ((CheckBoxPreference)preference).isChecked()? 1 : 0);
+ return true;
+ }
+ }
+
+ return super.onPreferenceTreeClick(preferenceScreen, preference);
+ }
+
+}
diff --git a/src/com/android/settings/RadioInfo.java b/src/com/android/settings/RadioInfo.java
index dbad45d..5df9313 100644
--- a/src/com/android/settings/RadioInfo.java
+++ b/src/com/android/settings/RadioInfo.java
@@ -560,7 +560,7 @@
// Get the toggle-data-on-boot menu item in the right state.
item = menu.findItem(MENU_ITEM_TOGGLE_DATA_ON_BOOT);
- SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this.getApplication());
+ SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(phone.getContext());
boolean value = sp.getBoolean(GSMPhone.DATA_DISABLED_ON_BOOT_KEY, false);
if (value) {
item.setTitle(R.string.radioInfo_menu_enableDataOnBoot);
@@ -584,7 +584,7 @@
private void updateQxdmState(Boolean newQxdmStatus) {
SharedPreferences sp =
- PreferenceManager.getDefaultSharedPreferences(this.getApplication());
+ PreferenceManager.getDefaultSharedPreferences(phone.getContext());
mQxdmLogEnabled = sp.getBoolean("qxdmstatus", false);
// This is called from onCreate, onResume, and the handler when the status
// is updated.
@@ -602,14 +602,14 @@
}
private void setCiphPref(boolean value) {
- SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this.getApplication());
+ SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(phone.getContext());
SharedPreferences.Editor editor = sp.edit();
editor.putBoolean(GSMPhone.CIPHERING_KEY, value);
editor.commit();
}
private boolean getCiphPref() {
- SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this.getApplication());
+ SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(phone.getContext());
boolean ret = sp.getBoolean(GSMPhone.CIPHERING_KEY, true);
return ret;
}
@@ -1044,7 +1044,7 @@
};
private void toggleDataDisabledOnBoot() {
- SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this.getApplication());
+ SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(phone.getContext());
SharedPreferences.Editor editor = sp.edit();
boolean value = sp.getBoolean(GSMPhone.DATA_DISABLED_ON_BOOT_KEY, false);
editor.putBoolean(GSMPhone.DATA_DISABLED_ON_BOOT_KEY, !value);
diff --git a/src/com/android/settings/UserDictionarySettings.java b/src/com/android/settings/UserDictionarySettings.java
index aeddcf7..ef22ee1 100644
--- a/src/com/android/settings/UserDictionarySettings.java
+++ b/src/com/android/settings/UserDictionarySettings.java
@@ -1,5 +1,5 @@
/**
- * Copyright (C) 2007 Google Inc.
+ * Copyright (C) 2009 Google Inc.
*
* 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
@@ -136,7 +136,7 @@
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
- showAddOrEditDialog(getWord(position));
+ openContextMenu(v);
}
@Override
@@ -145,8 +145,10 @@
AdapterContextMenuInfo adapterMenuInfo = (AdapterContextMenuInfo) menuInfo;
menu.setHeaderTitle(getWord(adapterMenuInfo.position));
- menu.add(0, CONTEXT_MENU_EDIT, 0, R.string.user_dict_settings_context_menu_edit_title);
- menu.add(0, CONTEXT_MENU_DELETE, 0, R.string.user_dict_settings_context_menu_delete_title);
+ menu.add(0, CONTEXT_MENU_EDIT, 0,
+ R.string.user_dict_settings_context_menu_edit_title);
+ menu.add(0, CONTEXT_MENU_DELETE, 0,
+ R.string.user_dict_settings_context_menu_delete_title);
}
@Override
@@ -203,7 +205,9 @@
| InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);
return new AlertDialog.Builder(this)
- .setTitle(R.string.user_dict_settings_add_dialog_title)
+ .setTitle(mDialogEditingWord != null
+ ? R.string.user_dict_settings_edit_dialog_title
+ : R.string.user_dict_settings_add_dialog_title)
.setView(content)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
@@ -216,10 +220,12 @@
}})
.create();
}
-
@Override
protected void onPrepareDialog(int id, Dialog d) {
AlertDialog dialog = (AlertDialog) d;
+ d.setTitle(mDialogEditingWord != null
+ ? R.string.user_dict_settings_edit_dialog_title
+ : R.string.user_dict_settings_add_dialog_title);
EditText editText = (EditText) dialog.findViewById(R.id.edittext);
editText.setText(mDialogEditingWord);
}
diff --git a/src/com/android/settings/wifi/AccessPointDialog.java b/src/com/android/settings/wifi/AccessPointDialog.java
index 917ed96..919f7fc 100644
--- a/src/com/android/settings/wifi/AccessPointDialog.java
+++ b/src/com/android/settings/wifi/AccessPointDialog.java
@@ -24,6 +24,7 @@
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
+import android.text.InputType;
import android.text.TextUtils;
import android.text.format.Formatter;
import android.text.method.PasswordTransformationMethod;
@@ -589,11 +590,9 @@
private void setShowPassword(boolean showPassword) {
if (mPasswordEdit != null) {
- // Toggle password
- mPasswordEdit.setTransformationMethod(
- showPassword ?
- null :
- PasswordTransformationMethod.getInstance());
+ mPasswordEdit.setInputType(InputType.TYPE_CLASS_TEXT |
+ (showPassword ? InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
+ : InputType.TYPE_TEXT_VARIATION_PASSWORD));
}
}