aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/Settings.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2011-07-22 02:41:31 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-07-22 02:41:31 -0700
commitf3e76883612173f94a8f50b415b8ec89c79766ba (patch)
tree5fdc6a31363642e2e1ad24b33cd40576605a5213 /java/src/com/android/inputmethod/latin/Settings.java
parenta1778b9c84dd8085d9019485a0e70dc103595bce (diff)
parent255486a5d067469e074f3649b3d2747e7a08aaa2 (diff)
downloadlatinime-f3e76883612173f94a8f50b415b8ec89c79766ba.tar.gz
latinime-f3e76883612173f94a8f50b415b8ec89c79766ba.tar.xz
latinime-f3e76883612173f94a8f50b415b8ec89c79766ba.zip
Merge "Disable VoiceInputLogger inside LatinIME"
Diffstat (limited to 'java/src/com/android/inputmethod/latin/Settings.java')
-rw-r--r--java/src/com/android/inputmethod/latin/Settings.java62
1 files changed, 37 insertions, 25 deletions
diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java
index 54f0a1b4d..b6171d276 100644
--- a/java/src/com/android/inputmethod/latin/Settings.java
+++ b/java/src/com/android/inputmethod/latin/Settings.java
@@ -16,13 +16,6 @@
package com.android.inputmethod.latin;
-import com.android.inputmethod.compat.CompatUtils;
-import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
-import com.android.inputmethod.compat.InputMethodServiceCompatWrapper;
-import com.android.inputmethod.deprecated.VoiceProxy;
-import com.android.inputmethod.compat.VibratorCompatWrapper;
-import com.android.inputmethodcommon.InputMethodSettingsActivity;
-
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -40,12 +33,20 @@ import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
-import android.speech.SpeechRecognizer;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.util.Log;
+import android.view.inputmethod.EditorInfo;
import android.widget.TextView;
+import com.android.inputmethod.compat.CompatUtils;
+import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
+import com.android.inputmethod.compat.InputMethodServiceCompatWrapper;
+import com.android.inputmethod.compat.InputTypeCompatUtils;
+import com.android.inputmethod.compat.VibratorCompatWrapper;
+import com.android.inputmethod.deprecated.VoiceProxy;
+import com.android.inputmethodcommon.InputMethodSettingsActivity;
+
import java.util.Arrays;
import java.util.Locale;
@@ -119,6 +120,9 @@ public class Settings extends InputMethodSettingsActivity
public final boolean mBigramPredictionEnabled;
public final boolean mUseContactsDict;
+ private final boolean mVoiceButtonEnabled;
+ private final boolean mVoiceButtonOnPrimary;
+
public Values(final SharedPreferences prefs, final Context context,
final String localeStr) {
final Resources res = context.getResources();
@@ -179,6 +183,12 @@ public class Settings extends InputMethodSettingsActivity
mUseContactsDict = prefs.getBoolean(Settings.PREF_KEY_USE_CONTACTS_DICT, true);
+ final String voiceMode = prefs.getString(PREF_VOICE_SETTINGS_KEY, null);
+ mVoiceButtonEnabled = voiceMode != null && !voiceMode.equals(
+ res.getString(R.string.voice_mode_off));
+ mVoiceButtonOnPrimary = voiceMode != null && voiceMode.equals(
+ res.getString(R.string.voice_mode_main));
+
Utils.setSystemLocale(res, savedLocale);
}
@@ -287,6 +297,17 @@ public class Settings extends InputMethodSettingsActivity
}
return builder.setIsPunctuationSuggestions().build();
}
+
+ public boolean isVoiceButtonEnabled(EditorInfo attribute) {
+ final boolean shortcutImeEnabled = SubtypeSwitcher.getInstance().isShortcutImeEnabled();
+ final int inputType = (attribute != null) ? attribute.inputType : 0;
+ return shortcutImeEnabled && mVoiceButtonEnabled
+ && !InputTypeCompatUtils.isPasswordInputType(inputType);
+ }
+
+ public boolean isVoiceButtonOnPrimary() {
+ return mVoiceButtonOnPrimary;
+ }
}
private PreferenceScreen mInputLanguageSelection;
@@ -304,8 +325,6 @@ public class Settings extends InputMethodSettingsActivity
private AlertDialog mDialog;
- private VoiceProxy.VoiceLoggerWrapper mVoiceLogger;
-
private boolean mOkClicked = false;
private String mVoiceModeOff;
@@ -349,7 +368,6 @@ public class Settings extends InputMethodSettingsActivity
mVoiceModeOff = getString(R.string.voice_mode_off);
mVoiceOn = !(prefs.getString(PREF_VOICE_SETTINGS_KEY, mVoiceModeOff)
.equals(mVoiceModeOff));
- mVoiceLogger = VoiceProxy.VoiceLoggerWrapper.getInstance(context);
mAutoCorrectionThreshold = (ListPreference) findPreference(PREF_AUTO_CORRECTION_THRESHOLD);
mBigramSuggestion = (CheckBoxPreference) findPreference(PREF_BIGRAM_SUGGESTIONS);
@@ -447,14 +465,17 @@ public class Settings extends InputMethodSettingsActivity
}
}
+ @SuppressWarnings("unused")
@Override
public void onResume() {
super.onResume();
- if (!VoiceProxy.VOICE_INSTALLED
- || !SpeechRecognizer.isRecognitionAvailable(getActivityInternal())) {
- getPreferenceScreen().removePreference(mVoicePreference);
- } else {
+ final boolean isShortcutImeEnabled = SubtypeSwitcher.getInstance().isShortcutImeEnabled();
+ if (isShortcutImeEnabled
+ || (VoiceProxy.VOICE_INSTALLED
+ && VoiceProxy.isRecognitionAvailable(getActivityInternal()))) {
updateVoiceModeSummary();
+ } else {
+ getPreferenceScreen().removePreference(mVoicePreference);
}
updateSettingsKeySummary();
updateShowCorrectionSuggestionsSummary();
@@ -541,6 +562,7 @@ public class Settings extends InputMethodSettingsActivity
[mVoicePreference.findIndexOfValue(mVoicePreference.getValue())]);
}
+ @Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case VOICE_INPUT_CONFIRM_DIALOG:
@@ -549,12 +571,9 @@ public class Settings extends InputMethodSettingsActivity
public void onClick(DialogInterface dialog, int whichButton) {
if (whichButton == DialogInterface.BUTTON_NEGATIVE) {
mVoicePreference.setValue(mVoiceModeOff);
- mVoiceLogger.settingsWarningDialogCancel();
} else if (whichButton == DialogInterface.BUTTON_POSITIVE) {
mOkClicked = true;
- mVoiceLogger.settingsWarningDialogOk();
}
- updateVoicePreference();
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(getActivityInternal())
@@ -583,7 +602,6 @@ public class Settings extends InputMethodSettingsActivity
AlertDialog dialog = builder.create();
mDialog = dialog;
dialog.setOnDismissListener(this);
- mVoiceLogger.settingsWarningDialogShown();
return dialog;
default:
Log.e(TAG, "unknown dialog " + id);
@@ -593,16 +611,10 @@ public class Settings extends InputMethodSettingsActivity
@Override
public void onDismiss(DialogInterface dialog) {
- mVoiceLogger.settingsWarningDialogDismissed();
if (!mOkClicked) {
// This assumes that onPreferenceClick gets called first, and this if the user
// agreed after the warning, we set the mOkClicked value to true.
mVoicePreference.setValue(mVoiceModeOff);
}
}
-
- private void updateVoicePreference() {
- boolean isChecked = !mVoicePreference.getValue().equals(mVoiceModeOff);
- mVoiceLogger.voiceInputSettingEnabled(isChecked);
- }
}