diff options
author | Marco Nelissen <marcone@google.com> | 2011-07-15 15:02:03 -0700 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2011-07-15 15:59:41 -0700 |
commit | 6eca4b3b927611795910908532fa927c9eea6faf (patch) | |
tree | d8bd3ac3a31171a859486ea594b06ca10322c51a /src/com | |
parent | 1aa671cba7d158eba1067ec523f28b7d33b37af4 (diff) | |
download | packages_apps_settings-6eca4b3b927611795910908532fa927c9eea6faf.zip packages_apps_settings-6eca4b3b927611795910908532fa927c9eea6faf.tar.gz packages_apps_settings-6eca4b3b927611795910908532fa927c9eea6faf.tar.bz2 |
Add Settings item to select sound effects control panel.
Change-Id: I7952aad3afbc9dea8ea54be9afcad7969a0f23bc
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/settings/SoundSettings.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/com/android/settings/SoundSettings.java b/src/com/android/settings/SoundSettings.java index 4ca7d4a..f6090c2 100644 --- a/src/com/android/settings/SoundSettings.java +++ b/src/com/android/settings/SoundSettings.java @@ -21,7 +21,10 @@ import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.media.AudioManager; +import android.media.audiofx.AudioEffect; import android.os.Bundle; import android.os.Vibrator; import android.preference.CheckBoxPreference; @@ -34,6 +37,8 @@ import android.provider.Settings.SettingNotFoundException; import android.telephony.TelephonyManager; import android.util.Log; +import java.util.List; + public class SoundSettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener { private static final String TAG = "SoundAndDisplaysSettings"; @@ -44,6 +49,7 @@ public class SoundSettings extends SettingsPreferenceFragment implements private static final String KEY_SILENT = "silent"; private static final String KEY_VIBRATE = "vibrate"; private static final String KEY_RING_VOLUME = "ring_volume"; + private static final String KEY_MUSICFX = "musicfx"; private static final String KEY_DTMF_TONE = "dtmf_tone"; private static final String KEY_SOUND_EFFECTS = "sound_effects"; private static final String KEY_HAPTIC_FEEDBACK = "haptic_feedback"; @@ -80,6 +86,7 @@ public class SoundSettings extends SettingsPreferenceFragment implements private CheckBoxPreference mSoundEffects; private CheckBoxPreference mHapticFeedback; private CheckBoxPreference mNotificationPulse; + private Preference mMusicFx; private CheckBoxPreference mLockSounds; private AudioManager mAudioManager; @@ -165,6 +172,19 @@ public class SoundSettings extends SettingsPreferenceFragment implements } } + mMusicFx = mSoundSettings.findPreference(KEY_MUSICFX); + Intent i = new Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL); + PackageManager p = getPackageManager(); + List<ResolveInfo> ris = p.queryIntentActivities(i, PackageManager.GET_DISABLED_COMPONENTS); + if (ris.size() <= 2) { + // no need to show the item if there is no choice for the user to make + // note: the built in musicfx panel has two activities (one being a + // compatibility shim that launches either the other activity, or a + // third party one), hence the check for <=2. If the implementation + // of the compatbility layer changes, this check may need to be updated. + mSoundSettings.removePreference(mMusicFx); + } + if (!Utils.isVoiceCapable(getActivity())) { for (String prefKey : NEED_VOICE_CAPABILITY) { Preference pref = findPreference(prefKey); @@ -335,6 +355,9 @@ public class SoundSettings extends SettingsPreferenceFragment implements boolean value = mNotificationPulse.isChecked(); Settings.System.putInt(getContentResolver(), Settings.System.NOTIFICATION_LIGHT_PULSE, value ? 1 : 0); + } else if (preference == mMusicFx) { + // let the framework fire off the intent + return false; } return true; |