OSDN Git Service

Use the new settings API.
authorNarayan Kamath <narayan@google.com>
Mon, 20 Jun 2011 10:49:42 +0000 (11:49 +0100)
committerNarayan Kamath <narayan@google.com>
Tue, 21 Jun 2011 12:43:40 +0000 (13:43 +0100)
Check for a meta-data element instead of a hardcoded
settings class.

Change-Id: Ife67ea64ad1f4ee36749c0b6f8c96d5a22d5b6e2

src/com/android/settings/TextToSpeechSettings.java

index 1f81c99..f7945d8 100644 (file)
@@ -130,7 +130,7 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
         mDefaultRatePref = (ListPreference) findPreference(KEY_TTS_DEFAULT_RATE);
         mDefaultLocPref = (ListPreference) findPreference(KEY_TTS_DEFAULT_LANG);
 
-        mEngineSettings = (Preference) findPreference(KEY_TTS_ENGINE_SETTINGS);
+        mEngineSettings = findPreference(KEY_TTS_ENGINE_SETTINGS);
         mEngineSettings.setEnabled(false);
 
         mTts = new TextToSpeech(getActivity().getApplicationContext(), this);
@@ -181,12 +181,11 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
         mEngineSettings.setTitle(getResources().getString(R.string.tts_engine_settings_title,
                 engine.label));
 
-        if (engineHasSettings(engineName)) {
+        final Intent settingsIntent = mEnginesHelper.getSettingsIntent(engineName);
+        if (settingsIntent != null) {
             mEngineSettings.setOnPreferenceClickListener(new OnPreferenceClickListener() {
                 public boolean onPreferenceClick(Preference preference) {
-                    Intent i = new Intent();
-                    i.setClassName(engineName, engineName + ".EngineSettings");
-                    startActivity(i);
+                    startActivity(settingsIntent);
                     return true;
                 }
             });
@@ -197,16 +196,6 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
 
     }
 
-    private boolean engineHasSettings(String enginePackageName) {
-        PackageManager pm = getPackageManager();
-        Intent i = new Intent();
-        i.setClassName(enginePackageName, enginePackageName + ".EngineSettings");
-        if (pm.resolveActivity(i, PackageManager.MATCH_DEFAULT_ONLY) != null){
-            return true;
-        }
-        return false;
-    }
-
     private void initDefaultSettings() {
         ContentResolver resolver = getContentResolver();