summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/tts
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/tts')
-rw-r--r--src/com/android/settings/tts/TextToSpeechSettings.java33
-rw-r--r--src/com/android/settings/tts/TtsEnginePreference.java66
2 files changed, 60 insertions, 39 deletions
diff --git a/src/com/android/settings/tts/TextToSpeechSettings.java b/src/com/android/settings/tts/TextToSpeechSettings.java
index 847c708..ab2ecc7 100644
--- a/src/com/android/settings/tts/TextToSpeechSettings.java
+++ b/src/com/android/settings/tts/TextToSpeechSettings.java
@@ -26,7 +26,6 @@ import com.android.settings.tts.TtsEnginePreference.RadioButtonGroupState;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.ContentResolver;
-import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.preference.ListPreference;
@@ -358,27 +357,6 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
mDefaultRatePref.setEnabled(enable);
}
- private void displayDataAlert(final String key) {
- Log.i(TAG, "Displaying data alert for :" + key);
- AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
- builder.setTitle(android.R.string.dialog_alert_title);
- builder.setIconAttribute(android.R.attr.alertDialogIcon);
- builder.setMessage(getActivity().getString(
- R.string.tts_engine_security_warning, mEnginesHelper.getEngineInfo(key).label));
- builder.setCancelable(true);
- builder.setPositiveButton(android.R.string.ok,
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- updateDefaultEngine(key);
- }
- });
- builder.setNegativeButton(android.R.string.cancel, null);
-
- AlertDialog dialog = builder.create();
- dialog.show();
- }
-
private void displayNetworkAlert() {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(android.R.string.dialog_alert_title);
@@ -496,11 +474,6 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
updateWidgetState(true);
}
- private boolean shouldDisplayDataAlert(String engine) {
- final EngineInfo info = mEnginesHelper.getEngineInfo(engine);
- return !info.system;
- }
-
@Override
public Checkable getCurrentChecked() {
return mCurrentChecked;
@@ -519,11 +492,7 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
@Override
public void setCurrentKey(String key) {
mCurrentEngine = key;
- if (shouldDisplayDataAlert(mCurrentEngine)) {
- displayDataAlert(mCurrentEngine);
- } else {
- updateDefaultEngine(mCurrentEngine);
- }
+ updateDefaultEngine(mCurrentEngine);
}
}
diff --git a/src/com/android/settings/tts/TtsEnginePreference.java b/src/com/android/settings/tts/TtsEnginePreference.java
index 3d612f0..80c4ac7 100644
--- a/src/com/android/settings/tts/TtsEnginePreference.java
+++ b/src/com/android/settings/tts/TtsEnginePreference.java
@@ -16,12 +16,15 @@
package com.android.settings.tts;
+import android.app.AlertDialog;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.speech.tts.TextToSpeech.EngineInfo;
+import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Checkable;
@@ -34,6 +37,8 @@ import com.android.settings.R;
public class TtsEnginePreference extends Preference {
+ private static final String TAG = "TtsEnginePreference";
+
/**
* Key for the name of the TTS engine passed in to the engine
* settings fragment {@link TtsEngineSettingsFragment}.
@@ -173,22 +178,69 @@ public class TtsEnginePreference extends Preference {
}
}
- private void onRadioButtonClicked(CompoundButton buttonView, boolean isChecked) {
+ private boolean shouldDisplayDataAlert() {
+ return !mEngineInfo.system;
+ }
+
+
+ private void displayDataAlert(
+ DialogInterface.OnClickListener positiveOnClickListener,
+ DialogInterface.OnClickListener negativeOnClickListener) {
+ Log.i(TAG, "Displaying data alert for :" + mEngineInfo.name);
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
+ builder.setTitle(android.R.string.dialog_alert_title);
+ builder.setIconAttribute(android.R.attr.alertDialogIcon);
+ builder.setMessage(getContext().getString(
+ R.string.tts_engine_security_warning, mEngineInfo.label));
+ builder.setCancelable(true);
+ builder.setPositiveButton(android.R.string.ok, positiveOnClickListener);
+ builder.setNegativeButton(android.R.string.cancel, negativeOnClickListener);
+
+ AlertDialog dialog = builder.create();
+ dialog.show();
+ }
+
+
+ private void onRadioButtonClicked(final CompoundButton buttonView,
+ boolean isChecked) {
if (mPreventRadioButtonCallbacks ||
(mSharedState.getCurrentChecked() == buttonView)) {
return;
}
if (isChecked) {
- if (mSharedState.getCurrentChecked() != null) {
- mSharedState.getCurrentChecked().setChecked(false);
+ // Should we alert user? if that's true, delay making engine current one.
+ if (shouldDisplayDataAlert()) {
+ displayDataAlert(new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ makeCurrentEngine(buttonView);
+ }
+ },new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ // Undo the click.
+ buttonView.setChecked(false);
+ }
+ });
+ } else {
+ // Privileged engine, set it current
+ makeCurrentEngine(buttonView);
}
- mSharedState.setCurrentChecked(buttonView);
- mSharedState.setCurrentKey(getKey());
- callChangeListener(mSharedState.getCurrentKey());
+ } else {
+ mSettingsIcon.setEnabled(false);
}
+ }
- mSettingsIcon.setEnabled(isChecked);
+ private void makeCurrentEngine(Checkable current) {
+ if (mSharedState.getCurrentChecked() != null) {
+ mSharedState.getCurrentChecked().setChecked(false);
+ }
+ mSharedState.setCurrentChecked(current);
+ mSharedState.setCurrentKey(getKey());
+ callChangeListener(mSharedState.getCurrentKey());
+ mSettingsIcon.setEnabled(true);
}